|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Query con parametri
Vorrei fare una query (access 2000) che mi estrae i dati da una tabella utilizzando come parametri le caselle di testo di una maschera.
Però non voglio essere costretto ad inserire tutti i parametri. Per esempio: tabella con due campi: "nome" e "cognome" maschera con due caselle di testo: "nome" e "cognome" La mia query dovrebbe essere in grado di filtrare la tabella in base al nome AND cognome, ma anche in base al nome OR cognome. Se uso l'operatore AND tra i due criteri sono costretto a fornirli tutti e due, se uso l'operatore OR sono costretto a fornirli separatamente. Come si può fare per usare l'operatore AND solo se inserisco i due parametri insieme e l'operatore OR se ne inserisco solo uno? Ciao a tutti |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non è più semplicvein fase di costruzione della query controlalre quali dei due parametri sia stato inserito e quale no ? Nel caso ne manchi uno basta non scrivere l'altra condizione...
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
potresti farmi un esempio?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Io di VBA non so niente...ma te lo scrivo in VB tanto sono simili...
Dim query As String query = "SELECT * FROM TABELLA" If Len(Parametro1) > 0 And Len(Parametro2) > 0 Then query = query + " Parametro1 = " + Prametro1 + " AND Parametro2 = " + Prametro2 ElseIf Len(Parametro1) > 0 And Len(Parametro2) = 0 Then query = query + " Parametro1 = " + Prametro2 ElseIf Len(Parametro1) = 0 And Len(Parametro2) > 0 Then query = query + "Parametro2 = " + Prametro2 End If query = query + ";" |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
I tuoi consigli sono sempre preziosi, grazie.
Codice:
Dim Query, A, B As String A = "[Forms]![ricerche]![Nome]" B = "[Forms]![ricerche]![Cognome]" Query = "SELECT [NOME ], [COGNOME ], FROM Tabella WHERE " If IsNull(Me!Nome) = False And IsNull(Me!Cognome) = True Then Query = Query + "[Tabella].[NOME]=" + A ElseIf IsNull(Me!Nome) = False And IsNull(Me!Cognome) = False Then Query = Query + "[Tabella].[NOME]=" + A + " AND " + "[Tabella].[COGNOME]=" + B ElseIf IsNull(Me!Nome) = True And IsNull(Me!Cognome) = False Then Query = Query + "[Tabella].[COGNOME]=" + B End If Query = Query + ";" Me!Risultato.RowSource = Query 'risultato è una casella di riepilogo' Me!Risultato.Requery |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:39.



















