Visualizzazione dei risultati da 1 a 5 su 5

Discussione: application.run in VB6

  1. #1

    application.run in VB6

    in access era possibile scrivere le seguenti istruzioni:

    Stringa="MiaProcedura"
    Application.Run(Stringa)

    che equilevano a:

    MiaProcedura

    in VB6 esiste qualcosa di equivalente;
    avrei necessita' di far eseguire procedure diverse a seconda
    del risultato di operazioni precedenti;
    grazie anticipato a chi potra' aiutarmi

  2. #2

    Re: application.run in VB6

    Originariamente inviato da Luberto Mario
    in access era possibile scrivere le seguenti istruzioni:

    Stringa="MiaProcedura"
    Application.Run(Stringa)

    che equilevano a:

    MiaProcedura

    in VB6 esiste qualcosa di equivalente;
    avrei necessita' di far eseguire procedure diverse a seconda
    del risultato di operazioni precedenti;
    grazie anticipato a chi potra' aiutarmi
    Non esiste una regola fissa e soprattutto senza conoscere la fattispecie la soluzione è generica: quella più semplice è l'uso di una struttura di controllo (If; Select Case) oppure se la procedura non è enorme e i tipi di dato da passare sono uguali puoi usare queste strutture di controllo nella procedura stessa.
    Piccolo esempio:
    codice:
      
    MiaProcedura("somma",10,16)  'chiamo la procedura
    MiaProcedura("divisione", 100,25)
    
    Private Function MiaProcedura (tipo as String, n1 as Integer, n2 as Integer)as integer
    dim ris as Integer
    if tipo = "somma" then
     ris = n1 + n2
    elseif tipo = "divisione" then
     ris = n1 / n2
    end if
    MiaProcedura = ris
    end function
    Se vuoi soluzioni più dettagliate, specifica meglio.


    Ciao

  3. #3

    application.run in vb6

    ciao mde 2005
    cerco di spiegare meglio le mie necessita'
    in access ho raggruppato in unico modulo
    i controlli necessari per validare i campi
    con tante sub tipo
    Sub Campo1
    .
    .
    End Sub

    Sub Campo2
    -
    -
    End Sub

    quindi per validare il campo eseguivo
    Application.Run ActiveControl.Name

    facendo quindi eseguire la sub con lo stesso nome del campo attivo al momento

    vorrei fare la stessa cosa in VB6 se possibile

    il tuo suggerimento, se non c' e' altra soluzione, e' quello a cui
    avevo gia' pensato ma mi sembra piu' laborioso
    cmq grazie

  4. #4
    La "validazione" dei campi, cioè le tue procedure, sono identiche tra di loro? Cambia solo il tipo di campo a cui si riferiscono?
    In caso affermativo potresti scrivere 1 sola procedura, e quando la chiami le passi il nome del tuo campo.
    Senza codice, di più non so dirti.


    Ciao

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: application.run in vb6

    Originariamente inviato da Luberto Mario
    ciao mde 2005
    cerco di spiegare meglio le mie necessita'
    in access ho raggruppato in unico modulo
    i controlli necessari per validare i campi
    con tante sub tipo
    Sub Campo1
    .
    .
    End Sub

    Sub Campo2
    -
    -
    End Sub

    quindi per validare il campo eseguivo
    Application.Run ActiveControl.Name

    facendo quindi eseguire la sub con lo stesso nome del campo attivo al momento

    vorrei fare la stessa cosa in VB6 se possibile

    il tuo suggerimento, se non c' e' altra soluzione, e' quello a cui
    avevo gia' pensato ma mi sembra piu' laborioso
    cmq grazie
    Puoi farlo anche in VB6, ovviamente.
    Ogni controllo espone l'evento Validate (quindi non serve nemmeno creare la Sub esterna per ogni controllo) che puoi sfruttare in due modi diversi:

    a) sfruttare direttamente l'evento (come fosse Sub Campo1, Sub Campo2, ...)

    b) creare una Function generica e chiamarla da sempre dall'evento Validate passandogli il controllo attivo, esempio:

    codice:
    Private Sub txtQualcosa_Validate(Cancel As Boolean)
        If VerificaCampi(Screen.ActiveControl.Name) = False Then
            Cancel = True
        End If
    End Sub 
    
    Public Function VerificaCampi(ByaVal sNomeControllo As String) As Boolean
        ' tuo codice di verifica
        ' Devi fargli restituire True se la verifica ha successo, altrimenti False.
    End Fucntion

    Come vedi, l'evento Validate gestisce il parametro Cancel che ti permette di decidere se il focus può passare al controllo successivo (Cancel = False), oppure (ad esempio in caso di dato sbagliato) mantenerlo sul controllo corrente, al fine di obbligare l'utente a correggerlo (Cancel = True).



Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.