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
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
0