PDA

View Full Version : [SQL Access] Ordinare query


padretursiu
28-09-2010, 11:22
Ciao a tutti,
ho un problema che non so come risolvere.

Ho una maschera con una casella di riepilogo che mi restituisce i dati di una query.
Ora in questa maschera vorrei inserire 3 bottoni: Nome, Data, Numero che quando premuti mi restituiscano la stessa query ordinata secondo quel determinato campo.
Devo agire sulla query sull'istruzione ORDER BY ma non so come.
Qualuno sa aiutarmi?

Grazie

Saluti

RaouL_BennetH
28-09-2010, 11:31
Ciao :)

Non so come funzionano le maschere di Access, ma sono sicuro che potresti fare una cosa del genere:

Crei una variabile, di tipo stringa, per es.: columnName

e setti in anticipo la tua query (pseudo-codice)


Dim columnName As String
"SELECT blabla FROM blablabla ORDER BY " & columnName


alla pressione del relativo bottone, setti columnName, cioè, in pseudo-codice:



'se viene premuto il bottone Nome

columnName = "Nome"

padretursiu
28-09-2010, 14:16
Purtoppo con una stringa cosi ho gia provato e non me la prende, mi da errore di sintassi nell'istruzione SQL, se invece provo a cambiare qualche parentesi o virgolette mi aggiunge una colonna con tutti valori "Nome" e quindi nn li ordina.

Grazie Comunque, continuero a provare per tentativi :)

RaouL_BennetH
28-09-2010, 15:27
Purtoppo con una stringa cosi ho gia provato e non me la prende, mi da errore di sintassi nell'istruzione SQL, se invece provo a cambiare qualche parentesi o virgolette mi aggiunge una colonna con tutti valori "Nome" e quindi nn li ordina.

Grazie Comunque, continuero a provare per tentativi :)

un errore di sintassi si può sempre sistemare, come la scrivi la query ?

padretursiu
28-09-2010, 20:09
SELECT Fatture.ID, AnagraficaAziende.Nome, Fatture.[Numero Fattura], Fatture.Data, Fatture.Importo, Fatture.[Data Scadenza], Pagamenti.TipoPagamento, Fatture.Pagato
FROM Pagamenti INNER JOIN (AnagraficaAziende INNER JOIN Fatture ON AnagraficaAziende.ID_Aziend=Fatture.Nome) ON Pagamenti.ID_Pag=AnagraficaAziende.Pagamento ORDER BY ' & columName;


Ho provato anche:
ORDER BY " & columnName
ORDER BY columnName
ORDER BY [Elenco Fatture].columnName
ORDER BY [forms]![Elenco Fatture].columnName

Il comando sul bottone invece:

Private Sub Comando40_Click()
Dim columnName As String
columnName = "AnagraficaAzienda.Nome"
El_fatture.Requery
End Sub

Ma niente da fare...:muro:

é comunque più un pallino che una cosa necessaria...:)

yorkeiser
29-09-2010, 13:17
Non ho idea di come hai fatto il tutto, ma:

1) Hai un'inesattezza sul nome:
SELECT Fatture.ID, AnagraficaAziende.Nome,
vs
columnName = "AnagraficaAzienda.Nome"

2) La variabile columnName è locale, ovvero non è visibile all'esterno della routine Comando40_Click().
Dovresti dichiarare una variabile globale se vuoi che oggetti esterni (come ad esempio la query su cui chiami il Requery) possano vederne il valore.

padretursiu
30-09-2010, 08:56
Grazie a tutti, non sono riuscito in quel modo ma ho trovato una soluzione alternativa. Ho creato più query con ordinamento diverso ed associate ad ogni bottone.

Grazie ancora