PDA

View Full Version : Urgentissimo VB e ACESS


dvx80
04-07-2002, 16:09
Devo consegnare un progetto entro martedi della prox settimana ma ho un problema.

Devo fare delle query in vba a cui passo come variabile una stringa o una data. Es:

Form_QueryClienti.ElencoClienti.RowSource = "SELECT Clienti.Codice, Clienti.Nome, Clienti.Cognome, Clienti.Data, Clienti.Comune1, Clienti.Via, Clienti.NumeroCivico, Clienti.Comune2, Clienti.Provincia, Clienti.Nazione, Clienti.TipoDocumento, Clienti.NumeroDocumento FROM Clienti WHERE Clienti.TipoCliente=0 AND Clienti.Nome=" & Me.Nome.Value

xō non funziona. La stessa cosa vale se il parametro č una data. Funziona invece se il dato č di tipo numerico.

Allora la domanda č semblice come cavolo faccio a farlo funzionare ???

cionci
04-07-2002, 16:19
Prova cosė :
Form_QueryClienti.ElencoClienti.RowSource = "SELECT Clienti.Codice, Clienti.Nome, Clienti.Cognome, Clienti.Data, Clienti.Comune1, Clienti.Via, Clienti.NumeroCivico, Clienti.Comune2, Clienti.Provincia, Clienti.Nazione, Clienti.TipoDocumento, Clienti.NumeroDocumento FROM Clienti WHERE Clienti.TipoCliente=0 AND Clienti.Nome='" & Me.Nome.Value & "'"

Le stringhe vanno messe fra gli apici singoli...
Per le date utilizza DateValue e guarda il post sopra il tuo che parla di Access e date...

dvx80
04-07-2002, 16:23
ho appena provato ma nessuna delle due funziona :( .

Hai altri duggerimenti?????

cionci
04-07-2002, 16:29
Come ho scritto nell'altro post...stampa a video la query (mettila ad esempio in un TextBox) copiala ed incollala in una nuova query di Access usando la "Visualizzazione SQL" (menų Visualizza)...

dvx80
05-07-2002, 14:00
Allora x le stringhe ho risolto mettendo gli apici singoli.

Per le date invece non c'č stato niete da fare. Ho provato ad usare la funzione che .ToShortDateString ma non me la riconosce.

:(:(:(

buttarelli
05-07-2002, 14:42
Per cercare le stringhe devi usare la clausola LIKE.
Ad esempio: ... where utenti.nome like 'daniele'.

Per le date č pių complicato! Il linguaggio SQL di Access le vuole in formato mm/gg/aaaa poi per cercare una data devi fare cosė:
... where utenti.datanascita = '#1/31/1970#'.

Quindi i passi sono i seguenti:
1) Creare una stringa con la data in formato mm/gg/aaaa
2) Nella stringa SQL usare il carattere # all'inizio e alla fine della data.

Spero di essermi spiegato.

dvx80
05-07-2002, 17:03
per le date basta il # ma si il valore lo imposti tu per sx #01/08/2002# mentre se si fa una cosa del genere

...... WHERE Clienti.DataN= #" & datan.value & "#"

non funziona per niente.

dvx80
08-07-2002, 18:19
Ultima richiesta :).

Esiste una funzione che trasformi una data in formato GG/MM/AAAA nella formato MM/GG/AAAA.

tnx.

buttarelli
09-07-2002, 07:32
Devi costruire tu la stringa.
Chiamiamo "data" la tua data in formato GG/MM/AAAA; per costruire una stringa con la data in formato MM/GG/AAAA devi fare cosė:

giorno = Mid(data, 1, 2)
mese = Mid(data, 4, 2)
anno = Mid(data, 7, 4)
data = "#" + mese + "/" + giorno + "/" + anno + "#"

Spero di essere stato chiaro.
Alla prossima

buttarelli
09-07-2002, 07:33
Mi sono dimenticato di dirti che se non ti servono i 2 #, puoi eliminarli!

cisky
09-07-2002, 13:03
E' piu comodo usare la funzione Format:

Es: Format(Date, "mm/dd/yy")

P.S: Funziona anche con le stringhe!
Es :Format("10/09/2002", "mm/dd/yy")

Ciao!