Ho il seguente modulo che, con la Function "cerca2()" mi compila automaticamente una form.
In pratica mi va a prendere dalla tabella "tab_art_vend1" l'articolo che ha una corrispondenza con il barcode che inserisco nella Form, e mi compila automaticamente il campo "descrizione1".
Fino a qui tutto bene.codice:Oprion Compare Database Option Explicit Dim ws As Workspace Dim db As Database Dim qd As QueryDef Dim RS As Recordset Dim strSQL As String Public Function cerca2() As Boolean Dim FRM As Form Set FRM = Forms("Pannello").vendite.Form Set ws = DBEngine.Workspaces(0) Set db = CurrentDb strSQL = "SELECT * FROM Tab_Art_Vend1 WHERE BARCODEven= '" & FRM!barcode1 & "'" Set RS = db.OpenRecordset(strSQL) If RS.EOF Then GoTo errLogon End If Forms!pannello.vendite!descrizione1 = RS!Descri RS.Close db.Close Exit Function errLogon: MsgBox "ATTENZIONE! - Articolo sconosciuto!", 0, "Programma" RS.Close db.Close End Function
Il problema è che ho diversi barcode uguali, ma con diverse descrizioni a seconda del LISTINO al quale sono associati (il motivo è lungo da spiegare) e questa funzione mi estrae sempre il primo che trova.
Io a questo punto avrei bisogno di dare 2 CONDIZIONI alla ricerca: e cioè di trovare la corrispondenza con il barcode come fa già adesso, ma anche con la condizione che il campo LISTINO del record estratto corrisponda ad un campo "PARAMETRO" non associato della Form che è aperta.
Ad esempio: compilami il campo "descrizione1" che abbia corrispondenza con il barcode inserito, e nel quale il campo LISTINO corrisponda al campo PARAMETRO della Maschera.
Ho modificato questa riga così:
ma mi da un errore "variabile oggetto o variabile del blocco with non impostata"codice:strSQL = "SELECT * FROM Tab_Art_Vend1 WHERE BARCODEven= '" & FRM!barcode1 & "'" And RS!listino = Forms!pannello!Parametro
Dove sbaglio?
Spero di essermi spiegato bene...


Rispondi quotando