+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Parametrizzare nome Form per ciclo

  1. #1
    L'avatar di dolcissimo
    dolcissimo non  in linea Scribacchino
    Non ricordo come faccio ad inserire una variabile su questa stringa al posto dell'8 es.

    al posto di questo:
    For I = 1 To 8
         frmPag8.Label10.Caption = frmPag8.Label10.Caption + 1
    Next I
    
    vorrei fare questo:
    For I = 1 To 8
         frmPagI.Label10.Caption = frmPagI.Label10.Caption + 1
    Next I
    
    ℹ️ Leggi di pi su dolcissimo ...

  2. #2
    L'avatar di TheTruster
    TheTruster ora  in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    usa la collection Forms:

    Dim frm As Form
    Set frm = Forms("frmPag" & I)
    frm.Label10.Caption = ...
    Set frm = Nothing
    
    TheTruster
    ℹ️ Leggi di pi su TheTruster ...

  3. #3
    L'avatar di dolcissimo
    dolcissimo non  in linea Scribacchino
    Strano su questa riga:
     
    Set frm = Forms("frmPag" & I)
    
    mi da un errore:

    errore 13 tipo non corrispondente
    ℹ️ Leggi di pi su dolcissimo ...

  4. #4
    L'avatar di chico_
    chico_ non  in linea Topo di biblioteca Ultimo blog: Attacco a Oscommerce
    Ma Forms non richiede un indice numerico ?
    Msdn:
    Forms(indice)
    Il segnaposto indice rappresenta un numero intero compreso tra 0 e Forms.Count - 1.
    Allora nel caso specifico si potrebbe fare (ma non mi piace... )
    
    Option Explicit
    Private Sub Command1_Click()
    Dim NomeForm As String, IdentForm As Integer, I As Integer
    Dim Minimo As Integer, Massimo As Integer
    Minimo = 1
    Massimo = 8
    For I = 0 To Forms.Count - 1
        NomeForm = Forms(I).Name
        If Left(NomeForm, 6) = "FrmPag" Then
            IdentForm = Right(NomeForm, Len(NomeForm) - 6)
            If IdentForm >= Minimo And IdentForm <= Massimo Then
                Forms(I).Label1.Caption = ".."
            End If
        End If
    Next
    End Sub
    
    Ciauz

    Chico
    ℹ️ Leggi di pi su chico_ ...

  5. #5
    L'avatar di dolcissimo
    dolcissimo non  in linea Scribacchino
    Non voglio insistere ma se non ricordo male male una volta ho fatto una cosa del genere:

          For I = 1 To 8
             frmPag " & I & ".Label10.Caption = frmPag" & I & ".Label10.Caption + 1
          next i
    
    ma in questo caso la sintassi sbagliata, e non ricordo proprio come ho fatto uffa!!!
    ℹ️ Leggi di pi su dolcissimo ...

  6. #6
    L'avatar di spikexx84
    spikexx84 non  in linea Scribacchino
    Cio vorresti usare la CallByName?

    Prova a dare un occhiata a questo post in caso:
    http://forum.masterdrive.it/visual-b...65/#post113976

    O scrivi CallByName nel cerca di questo forum, in vb6 troverai altre due discussioni...

    Spero di esserti stato d'aiuto, in bocca al lup

  7. #7
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Quote Originariamente inviato da chico_ Visualizza il messaggio
    Ma Forms non richiede un indice numerico ?


    Allora nel caso specifico si potrebbe fare (ma non mi piace... )
    Solo a corollario...
    Dall'Help(VBA) spero sia equivalente al VB6 che purtroppo non ho sottomano...:
     possibile fare riferimento a un singolo oggetto Form dell'insieme Forms 
    utilizzandone il nome o l'indice nell'ambito dell'insieme.
    
    Chiaramente usare il Nome pi vincolante in quantodeve essere composto correttamente e soprattutto DEVE ESISTERE, ma anche questo ha i suoi pro..., in quanto sperare che l'indice restituisca sempre lo stesso Oggetto utopistico... o meglio un'errore di concetto.
    Quindi in caso si voglia essere certi di puntare ad un dato Oggetto(Form) BENE usarne il NOME e non l'indice.

    E' oltremodo possibile sfruttare l'enumerazione dell'insieme Forms...
    ℹ️ Leggi di pi su @Alex ...

  8. #8
    L'avatar di dolcissimo
    dolcissimo non  in linea Scribacchino
    Quindi in caso si voglia essere certi di puntare ad un dato Oggetto(Form) BENE usarne il NOME e non l'indice.
    allora a me perch mi d un errore del tipo 13 tipo non corrispondente?
    ancora questa cosa non mi chiara..
    ℹ️ Leggi di pi su dolcissimo ...

  9. #9
    L'avatar di yronium
    yronium non  in linea Scribacchino
    Quote Originariamente inviato da dolcissimo Visualizza il messaggio
    allora a me perch mi d un errore del tipo 13 tipo non corrispondente?
    ancora questa cosa non mi chiara..
    Quando ti d l'errore, mentre e la riga gialla e il codice fermo, passa con il mouse senza cliccare sopra la variabile I: dopo un secondo si apre una bandierina con il suo valore corrente. Quanto ? Se esegui il codice in un ciclo (che non hai postato) e la variabile diventa 8 mente le tue form sono 7 puoi ottenere questo errore. E anche se la variabile I a un certo punto vuota.

    Inoltre se devi concatenare la variabile ad una stringa con il nome io farei prima una conversione di tipo:
    Set frm = Forms("frmPag" & CStr(I))

    Spero sia utile. Ciao.

  10. #10
    L'avatar di spikexx84
    spikexx84 non  in linea Scribacchino
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Solo a corollario...
    Dall'Help(VBA) spero sia equivalente al VB6 che purtroppo non ho sottomano...:
     possibile fare riferimento a un singolo oggetto Form dell'insieme Forms 
    utilizzandone il nome o l'indice nell'ambito dell'insieme.
    
    Chiaramente usare il Nome pi vincolante in quantodeve essere composto correttamente e soprattutto DEVE ESISTERE, ma anche questo ha i suoi pro..., in quanto sperare che l'indice restituisca sempre lo stesso Oggetto utopistico... o meglio un'errore di concetto.
    Quindi in caso si voglia essere certi di puntare ad un dato Oggetto(Form) BENE usarne il NOME e non l'indice.

    E' oltremodo possibile sfruttare l'enumerazione dell'insieme Forms...
    Pienamente daccordo ma purtroppo

    Quote Originariamente inviato da MSDN;
    Uninsieme Forms costituito da elementi che rappresentano i vari form caricati in un'applicazione. Include ilform MDI, i formMDI secondari e i form non MDI dell'applicazione. Per l'insieme Forms disponibile solo la propriet Count, che specifica il numero di elementi dell'insieme.
    Sintassi
    Form
    Forms(indice)
    Il segnaposto indice rappresenta un numero intero compreso tra 0 e Forms.Count - 1.
    VisualBasic vuole come index per l'insieme Forms un numero intero e a differrenza di VBA non accetta stringhe quindi ovvimanete se cerchi di passare una stringa ad un parametro di tipo numerico ottieni -> tipo non corrispondente.

    Credo che se vuoi utilizzare l'insieme Forms l'unica soluzione applicabile possa essere quella di chico, anche se concordo pienamente con lui quando scrive che una soluzione che non gli piace...

    Prova a dire il perch vuoi fare una cosa del genere, magari si pu trovare un altro metodo
    Ultima modifica di spikexx84; 17-09-2008 15:25 

+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 8
    Ultimo Post: 11-02-2012, 22:49
  2. Parametrizzare una query
    Da gualtiero nel forum Visual Basic 6
    Risposte: 9
    Ultimo Post: 13-05-2011, 21:49
  3. [ACCESS 2007] Parametrizzare filtri di selezione records
    Da hawk50 nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 31-03-2010, 16:53
  4. [JAVASCRIPT] Ciclo validazione form
    Da FEFE nel forum HTML, CSS e JavaScript
    Risposte: 3
    Ultimo Post: 26-04-2009, 13:34
  5. Ciclo sul form
    Da sanfra nel forum C#
    Risposte: 2
    Ultimo Post: 06-06-2007, 23:35