Newsgroup: it.comp.lang.visual-basic
Titolo: Provateci Voi io non ci riesco - da VBA a VB

Sto provando a traslocare da VBA a VB ma con molte difficoltà.
Nel programma ordiginale avevo una form continua con una serie di icone che
venivano aggiornate in runtime secondo la scelta operata da un menù
principale.
Cliccando su ciascuna di queste icone, con il comando DoCmd.OpenForm
"NomeForm", passavo ad una certa form e tutto era risolto.
Stabilito che le librerie di Microsoft Access Object, non possono essere
usate perchè causano dei problemi, ho realizzato la stessa cosa che avevo in
precedenza, con la creazione di una Toolbar che si aggiorna in runtime.
Il problema nasce quando clicco su uno dei bottoni della Toolbar, infatti se
tento di inviare il contenuto di Button.Key (dove ho immagazzinato il nome
delle form che dovrei aprire) all'istruzione Load Nomeform, ottengo
evidentemente un errore essendo Button.Key una stringa e Nomeform un
oggetto.
Ho la testa dura e devo trovare una soluzione comoda
Help me please

Scusa, aggiungo, che se proprio proprio proprio non ti va di usare
scelte... (cosa che a mio
parere non va cmq molto bene, non si sa mai che sbagli si possano
fare!!)
Forse una funzione cosi' messa puo' risolverti il problema:
(sotto c'e' il pezzo del click sul bottone della toolbar)
Private Sub LoadFormByName(ByVal strName As String)
    Dim obj As Form
    Set obj = Forms.Add(strName)
    Load obj
    obj.Show
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    LoadFormByName Button.Key
End Sub

cavolo.. sono proprio addormentato.. oggi penso di saper rispondere a
due domande..
e di tutte e due non capisco bene cosa vogliano! (sarà per questo che
credo di saper rispondere, forse! :0)))))
Ma tant'e'...
Suppongo tu ti riferisca alla toolbar "solita". Nel qual caso, l'evento
di default e' buttonclick,
che gentilmente ti fornisce il bottone. Con la sua proprieta' key.
Non potrebbe andare allora un semplice "select" ???
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
        Case "1"
            Form1.Show
        Case "2"
            form2.Show
        ...
        Case Else
            MsgBox "??????"
 
    End Select
End Sub

 ha scritto nel messaggio
news:1122408184....@g47g2000cwa.googlegroups.com...

NON SO COME RINGRAZIARTI
LA LAMPADINA SI è ACCESA FINALMENTE
ED UN ALTRO PASSO VERSO LA GLORIA E' STATO FATTO

 Ho la testa dura e devo trovare una soluzione comoda
Molto chiara tutta questa spiegazione del problema... :)
Dai un occhio a questo thread
http://groups.google.it/group/it.comp.lang.visual-basic/browse_frm/thread/7b39a6d3ce6f85d8/49ceee6133c22272?q=zanna+scriptcontrol+form&rnum=1&hl=it#49ceee6133c22272
Ciao 

 ha scritto nel messaggio 
news:42e72...@x-privat.org...

scusa ma con questo codice
 Dim frm As Form
    Set frm = Forms.Add("Form2")
    frm.Show
dopo la prima volta che crei form2, le volte successive viene creata una 
nuova istanza, non sarebbe piu corretto prima di aggiungere form2 nella 
collection forms controllare che non sia gia presente e  nel caso fare lo 
show di quella istanza piuttosto che crearne una nuova?

beh.. dipende da cosa uno deve fare, no?
cmq, di base hai ragione.. Nuova funzione:
Private Sub LoadFormByName(ByVal strName As String, ByVal boolNewForm
As Boolean)
    Dim frm As Form
    Dim i As Integer
    Dim bFound As Boolean
    bFound = False
    For Each frm In Forms
        If frm.Name = strName Then
            bFound = True
            Exit For
        End If
    Next frm
    If Not bFound Or boolNewForm Then
        Set frm = Forms.Add(strName)
    End If
 
    frm.Show
End Sub