Problema vba e access

di
Anonimizzato10905
il
3 risposte

Problema vba e access

Buonasera a tutti voi cari amici, ho una macro vba su un campo con molti record che mi funziona...if [campo1]<= [campo2] then campo3 = campo 4 end if end sub. perchè per eseguirla devo andare col cursore su ogni record della maschera? ci vorrebbe un ciclo for each?

3 Risposte

  • Re: Problema vba e access

    Questa è la macro che ho in un pregetto vba con excel, ora sto lavorando con access e ho realizzato lo stesso progetto pero in access sostituendo le colonne con campi, la macro funziona pero devo cliccare sui record, ho provato a mettere l'evento su campo , sotto un pulsante, sul form, ma niente devo per forza selezionare un record per eseguirla, ovviamente la macro che uso in vba excel, è lunga e coninua fino a range 40, ci vorrebbe un ciclo for each, voi che ne pensate?
    If Range("I4") = "" Then
    If Range("L4") = "" Then
    If Range("b1").Value >= Range("g4").Value Then
    If Range("g4").Value <> "" Then
    If Range("H4").Value <> "" Then
    Range("A4:H4").Select
    Selection.Interior.ColorIndex = 36
    MsgBox "ATTENZIONE: Oggi " & Range("b1").Value & " assegno da versare nr " & Range("F4 ").Value & " " & Range("C4") & " " & "del cliente " & Range("b4 ").Value & " di Eur" & Format(Range(" h4").Value, " 0,000.00"), 64, " By Mario Fabozzi "
    Mario = MsgBox("VUOI VERSARE L'ASSEGNO " & Range(" C4") & " nr " & Range("F4") & " del cliente " & Range("B4") & " di Eur " & Range(" h4") & " ?", vbYesNo, " By Mario Fabozzi ")
    If Mario = vbYes Then
    Message = "INSERISCI IL NUMERO DI CONTO CORRENTE :"
    Title = "VERSAMENTO"
    MyValue = InputBox(Message, Title)
    If MyValue <> "" Then
    Range("L4").Value = MyValue
    Range("k4").Value = Range("b1").Value
    Range("I4:L4").Select
    Selection.Interior.ColorIndex = 36
    End If
    End If
    End If
    End If
    End If
    End If
    End If
  • Re: Problema vba e access

    Posso darti soltanto qualche imbeccata logica, non tecnica, perchè non conosco i codici vba.
    Penso che sicuramente dovrai applicare un ciclo For...Next.
    Mi sembra strano che tu abbia riscritto tutto quello per 40 volte, quando proprio un ciclo For...Next risolve con molte meno linee di istruzione.
    Considera pure che il tuo numero di record potrebbe aumentare nel corso del tempo, quindi il valore 40 risulterebbe obsoleto. Mi immagino l'uso di una funzione tipo DCount che ti permette di contare tutti i record prima, dal risultato di questa funzione potresti applicarlo a una variabile e poi mettere in moto il ciclo For...Next.
    A naso di ignorante, la sintassi che proponi nel tuo codice (Excel), mi sembra diversa da quella che mi capita di osservare in altri casi (Access)...boh!
    Spero di non aver dato un contributo troppo sballato, piuttosto aspetta l'aiuto di un utente più esperto.
  • Re: Problema vba e access

    Grazie Osvaldo , lo penso anch'io l'istruzione dcount e il ciclo for next, andrebbero bene ma al momento non so proprio da dove iniziare.
Devi accedere o registrarti per scrivere nel forum
3 risposte