PDA

Visualizza la versione completa : [VB] Query or not Query -


Akira
10-07-2002, 10:00
Sto lavorando su una maschera di Access, su questa maschera ho una combo box con l'elenco dei listini e 2 text box dove nel primo c'e un valore e nel secondo ci va il risultato della query.

Alla selezione del listino (combo box) la query deve analizzare il valore presente sulla maschera della prima text box e quello rilasciato dalla stessa combo e mettere il risultato nel secondo campo text box
1.Mi serve la connessione al Db visto che sto già lavorando all'interno di Access???
2.E il Recordset è giusto usarlo???
3.Questa formula è corretta? perchè non mi funziona?

Dim DBJet As Database
Dim RJet As Recordset
query = "SELECT SCONTO_1 FROM LISTINI INNER JOIN ARTICOLI ON
LISTINI.ID_LIS = ARTICOLI.ID_LIS_ART WHERE DES_LIS_ART='" & COMBO_LISTINO & "' AND GS_ART='" & GRUPPO_SCONTO & "'"
Set RJet = DBJet.OpenRecordset(query)

ladyBlu
10-07-2002, 10:13
visto che lavori direttamente in access, secondo me ti conviene creare innanzi tutto una query direttamente sul db;
poi assegni al recordset la query:

Dim RJet As Recordset
Dim filtro as String

filtro=" Where nomecampo = '" & stringa & "' AND nomecampo = '" & stringa & "'"

Set RJet = CurrentDB.OpenRecordset(nomequery & filtro)

dovrebbe funzionare, è un po' che non lavoro in access, quindi sono andata un po' a memoria.
:ciauz:

Akira
10-07-2002, 16:01
Ho provato ad eseguire la tua istruzione ma si blocca dicendomi che non trova la tabella o la query a cui fa riferimanto?

dunque???

hai qualche altra soluzione da propormi?
Ti prego!!!
:(

ladyBlu
10-07-2002, 17:39
postami il codice che hai usato e l'SQL della query che hai creato così gli do un'occhiata e poi ti dico, ok?
:ciauz:

Akira
11-07-2002, 09:11
Buongiorno my Lady,

Questo è il codice in VB
Dim RJet As Recordset
Dim filtro As String
filtro = " Where QurListini.DES_LIS_ART = '" & COMBO_LISTINO & "' AND QurListini.ID_GS_ART = '" & GRUPPO_SCONTO & "'"
Set RJet = CurrentDb.OpenRecordset("QurListini" & filtro)
SCONTO_1 = RJet

mentre questa è la Query
SELECT ARTICOLI.DES_LIS_ART, LISTINI.ID_GS_ART, LISTINI.SCONTO_1,LISTINI.SCONTO_2
FROM LISTINI INNER JOIN ARTICOLI ON LISTINI.ID_LIS_ART = ARTICOLI.ID_LIS_ART;

Ciao e grazie

ladyBlu
11-07-2002, 10:56
ok, cominciamo dall'inizio.


apri la maschera in modalità struttura.
fai click col destro al di fuori del corpo della maschera e clicca su proprietà, in modo da aprire la finestra delle proprietà della maschera.
vai sul menu dati di questa finestra e posizionati sulla voce: "Origine record". Inserisci il nome della query da te creata in precedenza.
In questo modo la maschera sa già a quale query deve andare a chiedere i dati.
crea sul codice una Sub EseguiRicerca().


Sub EseguiRicerca()

criteri="DES_LIS_ART = '" & COMBO_LISTINO & "' AND ID_GS_ART = '" & GRUPPO_SCONTO & "'"
miaQryOrigine="nomequery"

If DCount("*", miaQryOrigine, criteri) = 0 Then
MsgBox "Nessun elemento trovato", vbInformation,titolo
Exit Sub
End If

myQRY = miaQryOrigine & " Where " & criteri
RecordSource = myQRY

Requery

End Sub



credo che così funzioni, io non posso testarlo, quindi dovrai dirmi tu se ti genera errori.
:ciauz:

Loading