ERRO RECORDCOUNT
Estou tentando imprimir um relatorio conforme a selecao em um combobox, fiz o codigo abaixo mas ele sempre independente do que eu escolha no combo ele sempre me mostra a MSGBOX, o que sera que há de errado ?
Private Sub Image2_Click()
If cbostatus.ListIndex = -1 Then
MsgBox "Selecione o status da vistoria", vbInformation, " Atenção!"
cbostatus.SetFocus
Exit Sub
End If
Set Cnn = New ADODB.Connection
Set Rs = New ADODB.Recordset
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c: riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
Rs.Open "Select * From TabVistorias where Status='" & cbostatus.Text & "'", Cnn
If Rs.RecordCount > 0 Then
Rs.Close
Set Rs = Nothing
Cnn.Close
Set Cnn = Nothing
Set Rs = New ADODB.Recordset
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c: riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
Set Rs = Cnn.Execute("Select * From TabVistorias where Status='" & cbostatus.Text & "'order by data")
Set RelvistoriasAberto.DataSource = Rs
RelvistoriasAberto.Show
Exit Sub
Else
MsgBox "Não existe nenhuma vistoria com o status de " & cbostatus.Text & " para ser imprimida", vbInformation, " Atenção"
End If
End Sub
Private Sub Image2_Click()
If cbostatus.ListIndex = -1 Then
MsgBox "Selecione o status da vistoria", vbInformation, " Atenção!"
cbostatus.SetFocus
Exit Sub
End If
Set Cnn = New ADODB.Connection
Set Rs = New ADODB.Recordset
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c: riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
Rs.Open "Select * From TabVistorias where Status='" & cbostatus.Text & "'", Cnn
If Rs.RecordCount > 0 Then
Rs.Close
Set Rs = Nothing
Cnn.Close
Set Cnn = Nothing
Set Rs = New ADODB.Recordset
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c: riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
Set Rs = Cnn.Execute("Select * From TabVistorias where Status='" & cbostatus.Text & "'order by data")
Set RelvistoriasAberto.DataSource = Rs
RelvistoriasAberto.Show
Exit Sub
Else
MsgBox "Não existe nenhuma vistoria com o status de " & cbostatus.Text & " para ser imprimida", vbInformation, " Atenção"
End If
End Sub
após a linha set rs = new adodb.recordset, coloque:
rs.CursorLocation = adUseClient
rs.CursorLocation = adUseClient
maiconls, sempre de uma identada no codigo para facilitar a leitura, vamos lá:
If cbostatus.ListIndex = -1 Then
MsgBox "Selecione o status da vistoria", vbInformation, " Atenção!"
cbostatus.SetFocus
Exit Sub
End If
Set Cnn = New ADODB.Connection
Set Rs = New ADODB.Recordset
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c: riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
Rs.Open "Select * From TabVistorias where Status='" & cbostatus.Text & "'", Cnn
If Rs.RecordCount > 0 Then
Rs.Close
Set Rs = Nothing
Cnn.Close
Set Cnn = Nothing
Set Rs = New ADODB.Recordset
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c: riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
Set Rs = Cnn.Execute("Select * From TabVistorias where Status='" & cbostatus.Text & "'order by data")
Set RelvistoriasAberto.DataSource = Rs
RelvistoriasAberto.Show
Else
MsgBox "Não existe nenhuma vistoria com o status de " & cbostatus.Text & " para ser imprimida", vbInformation, " Atenção"
End If
tente assim, retire o ultimo exit sub antes do else, agora porque dar dois SELECTS?? em um só poderia resolver, gostaria de ver como ou deixa como esta pois lhe é necessário???
If cbostatus.ListIndex = -1 Then
MsgBox "Selecione o status da vistoria", vbInformation, " Atenção!"
cbostatus.SetFocus
Exit Sub
End If
Set Cnn = New ADODB.Connection
Set Rs = New ADODB.Recordset
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c: riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
Rs.Open "Select * From TabVistorias where Status='" & cbostatus.Text & "'", Cnn
If Rs.RecordCount > 0 Then
Rs.Close
Set Rs = Nothing
Cnn.Close
Set Cnn = Nothing
Set Rs = New ADODB.Recordset
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c: riade\Data\dbase.mdb;Jet OLEDB:Database Password=tmonrsr2308sbnu;"
Set Rs = Cnn.Execute("Select * From TabVistorias where Status='" & cbostatus.Text & "'order by data")
Set RelvistoriasAberto.DataSource = Rs
RelvistoriasAberto.Show
Else
MsgBox "Não existe nenhuma vistoria com o status de " & cbostatus.Text & " para ser imprimida", vbInformation, " Atenção"
End If
tente assim, retire o ultimo exit sub antes do else, agora porque dar dois SELECTS?? em um só poderia resolver, gostaria de ver como ou deixa como esta pois lhe é necessário???
provavelmente ele não está conseguindo abrir o recordset(Rs), certifique-se que a conexão (Cnn) está ativa.
Funcionou Jean, agora sim...Muito obrigado..
Wiliam obrigado pela dica de identação, realmente tenho que me acostumar com isso..Valeu.
Wiliam obrigado pela dica de identação, realmente tenho que me acostumar com isso..Valeu.
Tópico encerrado , respostas não são mais permitidas