Bases de Datos - donde esta el error

 
Vista:
sin imagen de perfil

donde esta el error

Publicado por giorgio (3 intervenciones) el 16/07/2013 15:50:44
Hola gracias por responder, tengo un form con un combobox para seleccionar el cliente, un list box donde me aparecen las fechas y haciendo click en la fecha melo manda al text1 y en text2 escribo la fecha ultima o sea para buscar por cliente y pediodo. Cuando aprieto " CmdPerd " me abre un report.PERO ES AQUI DONDE ME DA EL ERROR.

Si aprieto el boton " cmdReport " que es el que busca una fecha sola funciona bien. El codigo completo es este:
Espero me puedas ayudar no solo para sacarme el dolor de cabeza si no para entender donde cometo el error, Gracias por ayudarme.



'Dichiarazione ogetti...
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset


Private Sub Calendar1_Click()
Text1 = Calendar1
Calendar1.Visible = False
End Sub

Private Sub Calendar2_Click()
Text2 = Calendar2
Calendar2.Visible = False
End Sub

Private Sub cboClienti_Click()
Dim Sql As String
List1.Clear
If rs.State = adStateOpen Then rs.Close
Sql = "SELECT distinct Acquist.DataAcquisto "
Sql = Sql & "FROM Clienti INNER JOIN Acquist ON Clienti.IDcl = Acquist.IDcl "
Sql = Sql & "WHERE Clienti.Nome='" & cboClienti & "'"

rs.Open Sql, cn, adOpenStatic, adLockOptimistic
Do Until rs.EOF
List1.AddItem rs!DataAcquisto
rs.MoveNext
Loop
rs.Close
End Sub

Private Sub CmdPerd_Click()
If cboClienti.Text <> "" And cboClienti.Text <> "Selezionare il Cliente..." Then
Set cn = New ADODB.Connection

'Apro connessione...
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Archivio.mdb;Persist Security Info=False"

'Carico il RecordSet...
Set rs = cn.Execute("SELECT Clienti.Nome, Acquist.DataAcquisto, Acquist.NomeProdotto, Acquist.Descrizione, Acquist.PrezzoVendita, Acquist.Quantità, Acquist.Totale FROM Clienti INNER JOIN Acquist ON Clienti.IDcl = Acquist.IDcl WHERE Clienti.Nome = " & cboClienti & " and Acquist.DataAcquisto between #" & Format(Text1, "mm/dd/yyyy") & "# and #" & Format(Text2, "mm/dd/yyyy") & "#")
'Set rs = cn.Execute("Select Clienti.Nome, Trattamenti.DataTr, Trattamenti.Trattamento, Trattamenti.ZonaTrattata, Trattamenti.Dur, Trattamenti.Costo from Trattamenti, Clienti " & " Where WHERE IDcl" & " IN (SELECT IDcl FROM Clienti" & " WHERE DataTr Between text1" & " And text2)")
'Riporto i dati nel report...
Set ReportAcq.DataSource = rs
Load ReportAcq

ReportAcq.Title = rs(0).Value

'Chiamo il Report..
ReportAcq.Show
Else
MsgBox ("Non è stato selezionato un Cliente valido.."), vbInformation, "Errore!"
End If
End Sub

Private Sub cmdReport_Click()
1 Dim Sql As String
If cboClienti.Text <> "" And cboClienti.Text <> "Selezionare il Cliente..." Then
Set cn = New ADODB.Connection

'Apro connessione...
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Archivio.mdb;Persist Security Info=False"
'Carico il RecordSet...
Set rs = cn.Execute("Select Clienti.Nome, DataAcquisto, NomeProdotto, Descrizione, Quantità, PrezzoVendita, Totale from Acquist, Clienti " & " Where Clienti.idCl = Acquist.idCl and " & " DataAcquisto =#" & Format(Text1.Text, "mm/dd/yyyy") & "# and " & "Clienti.Nome='" & cboClienti.Text & "'")

If rs.EOF Then MsgBox "nessun Oggetto corrispondente alla data :" & Text1 & " per il sig. " & cboClienti: rs.Close: Exit Sub
'Riporto i dati nel report...
Set ReportAcq.DataSource = rs
Load ReportAcq

ReportAcq.Title = rs(0).Value

'Chiamo il Report..
ReportAcq.Show

Else
MsgBox ("Non è stato selezionato un Cliente valido.."), vbInformation, "Errore!"
End If

End Sub

Private Sub Form_Load()

Set cn = New ADODB.Connection

'Apro connessione...
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Archivio.mdb;Persist Security Info=False"

Set rs = cn.Execute("Select clienti.IDcl, clienti.nome FROM clienti")

'Dichiaro la variabile indice per caricare la combo ponendola poi uguale a zero 0...
Dim carica_combo_con_clienti As Long

carica_combo_con_clienti = 0

'Ciclo While fino alla fine del recordset
Do While Not rs.EOF
cboClienti.AddItem rs(1).Value
cboClienti.ItemData(carica_combo_con_clienti) = rs(0).Value
carica_combo_con_clienti = carica_combo_con_clienti + 1
'Passo al Record successivo...
rs.MoveNext
Loop
rs.Close

End Sub

Private Sub List1_Click()
Text1 = List1.List(List1.ListIndex)
End Sub

Private Sub Text1_Click()
Calendar1.Visible = True
End Sub

Private Sub Text2_Click()
Calendar2.Visible = True
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

donde esta el error

Publicado por Maverick (2 intervenciones) el 19/07/2013 22:38:07
Hola giorgio,

Seria bueno que indicas el mensaje de error que envia.

Saludos

Maverick (Lima - Perú)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

donde esta el error

Publicado por giorgio (3 intervenciones) el 20/07/2013 01:00:25
El error es:2147217900 (80040e14) en tiempo de ejecucion.
Error de sintaxis (operador faltante) en la expresion de la query 'Clientenome = "nombre seleccionado" and Acquist DataAcquisto between 06/03/2001 and 15/6/2001

Gracias por tu colaboracion, espero me puedas ayudar, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar