Newsgroup: it.comp.lang.visual-basic
Titolo: Far eseguire codice VBA da un programma VB.

Ciao,
    qualcuno mi potrebbe dire come (anche a grandi linee) posso far
eseguire del codice VBA (per esempio una routine che mi
crea un nuovo campo in una tabella di un database) in un programma,
sempre Vb?
    Grazie a tutti coloro che avranno la pazienza e la cortesia di
rispondermi.
Lino

 ha scritto nel messaggio
news:3A09A0F8...@era-net.it...


Microsoft ScriptControl
vedere relativo help per capire come funziona e dare un'occhiata agli esempi
--
ciao
xAERO


     qualcuno mi potrebbe dire come (anche a grandi linee) posso far
eseguire del codice VBA (per esempio una routine che mi crea un nuovo campo
in una tabella di un database) in un programma, sempre Vb?
Che tipo di database?
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

Maurizio Borrelli ha scritto:

Un database creato con Access 97. Ciao

 Un database creato con Access 97.
Allora, se interpreto correttamente la tua richiesta, posto, per esempio,
che la routine che vuoi eseguire, presente nel file "c:\db1.mdb", si chiami
"prova":
Option Explicit
Sub Main()
  With New Access.Application
    .OpenCurrentDatabase "c:\db1.mdb"
    .Run "prova"
    .CloseCurrentDatabase
    .Quit
  End With
End Sub


Maurizio Borrelli ha scritto:

La mia esigenza non era quella di eseguire una routine che si trova in un
modulo di un db access. Io volevo aver la possibilità di inserire in una
textbox del mio programma, una routine simile a questa:
Public sub prova()
    'usando Dao
    dim db as database
    dim rs as recordset
    set db = opendatabase ("C:\....")
    ....
    msgbox rs!nome
    ....
End sub
Grazie ancora,
Lino

 End sub
Scusami, ho letto ben due volte il tutto ma ancora non ho capito cosa vuoi
fare. Cosa intendi con "inserire una routine in una textbox"? Una routine,
poi, che dovrebbe "creare un nuovo campo in una tabella di database"!...


 > End sub
Intanto mi scuso per non esser stato molto chiaro, è un mio difetto. Cercherò
di ripetere nuovamente il mio problema.
Creo un programma nel quale inserisco una textbox (oppure un RichTextBox) ed
un commandbutton. In questa textbox scrivo una routine tipo quella del
messaggio precedente (ma anche routine che non accedono a database) e
cliccando sul pulsante vorrei che venga valutata ed eseguita (a run-time
quindi).
Spero di essermi spiegato. Grazie della tua pazienza, Lino.

 Spero di essermi spiegato.
Putroppo si`... ti sei spiegato!... ;-)
Brutta roba quella che chiedi!... Come mai ritieni di avere questo tipo di
necessita`? Non ti e` possibile fare in altro modo?
Praticamente vuoi scrivere un programma... programmabile. Se tu fossi una
casa di software che sviluppa applicazioni per un mercato "globale" direi
che potresti prendere contatto con Microsoft per implementare VBA nella tua
applicazione.
Nel tuo caso potresti arrangiarti con VBScript... Segue un esempio. Per
eseguirlo dovrai aggiungere fra i componenti del progetto lo "ScriptControl"
(MSSCRIPT.OCX) e collocarlo sul Form:
    Option Explicit
    Private Sub Command1_Click( _
    )
      With ScriptControl1
        .Language = "VBScript"
        .AddCode Text1.Text
        .Run "Main"
      End With
    End Sub
    Private Sub Form_Load( _
    )
      ' Readonly on runtime:
      ' Text1.Multiline = True
      Text1.Text _
        = "Sub Prova" & vbCrLf _
        & "  MsgBox ""Hello, World!""" & vbCrLf _
        & "End Sub" & vbCrLf _
        & "Sub Main" & vbCrLf _
        & "  Prova" & vbCrLf _
        & "End Sub"


Grazie mille, sei stato molto gentile. Ciao Lino.

 Grazie mille, sei stato molto gentile.
Progo:)
Cosa hai deciso di fare, alla fine?


Ho comprato dal sito della Microsoft Il Vba SDK, e per ora uso, come mi
hai suggerito tu, il controllo msscript. Lino