RUN-TIME ERROR 13 TIPO INCOMPATIVEL.
pessoal estou com um grande problema que nao estou conseguindo resolver de jeito nenhum se alguem puder me ajudar... agradeço muito ai vai a minha rotina.
Public bancodedados As Database
Public banco As Recordset
Private Sub cmdvalidaregistro_Click()
Set banco = bancodedados.OpenRecordset([Ô]select nome from funcionario where registro =[Ô] & CDbl(txtnumeroregistro.Text))
If banco.RecordCount = 0 Then
MsgBox [Ô]registro nao encontrado[Ô], vbInformation + vbOKOnly, [Ô]..:relogio ponto by andre[Ô]
Exit Sub
End If
txtnome.Text = banco([Ô]nome[Ô])
End Sub
Private Sub Form_load()
Dim cnn As ADODB.Connection
Dim rs As Recordset
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
cnn.Open [Ô]provider=microsoft.jet.oledb.3.51;data source=C:\Documents and Settings\andre\Desktop\pontoeletronico\funcionario.mdb;[Ô]
rs.Open [Ô]select nome from funcionario where registro=[ô][Ô] & txtnumeroregistro.Text & [Ô][ô][Ô], cnn, adOpenStatic
If rs.RecordCount > 0 Then
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End If
Set bancodedados = OpenDatabase(App.Path & [Ô]\funcionario.mdb[Ô])
End Sub
Private Sub Form_Unload(Cancel As Integer)
banco.Close
bancodedados.Close
End Sub
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
If InStr(1, [Ô]1234567890,[Ô] & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
o erro acontece logo na primeira linha da rotina..
se alguem souber como resolver isto serei muito grato...
Public bancodedados As Database
Public banco As Recordset
Private Sub cmdvalidaregistro_Click()
Set banco = bancodedados.OpenRecordset([Ô]select nome from funcionario where registro =[Ô] & CDbl(txtnumeroregistro.Text))
If banco.RecordCount = 0 Then
MsgBox [Ô]registro nao encontrado[Ô], vbInformation + vbOKOnly, [Ô]..:relogio ponto by andre[Ô]
Exit Sub
End If
txtnome.Text = banco([Ô]nome[Ô])
End Sub
Private Sub Form_load()
Dim cnn As ADODB.Connection
Dim rs As Recordset
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
cnn.Open [Ô]provider=microsoft.jet.oledb.3.51;data source=C:\Documents and Settings\andre\Desktop\pontoeletronico\funcionario.mdb;[Ô]
rs.Open [Ô]select nome from funcionario where registro=[ô][Ô] & txtnumeroregistro.Text & [Ô][ô][Ô], cnn, adOpenStatic
If rs.RecordCount > 0 Then
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End If
Set bancodedados = OpenDatabase(App.Path & [Ô]\funcionario.mdb[Ô])
End Sub
Private Sub Form_Unload(Cancel As Integer)
banco.Close
bancodedados.Close
End Sub
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
If InStr(1, [Ô]1234567890,[Ô] & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
o erro acontece logo na primeira linha da rotina..
se alguem souber como resolver isto serei muito grato...
verifica em seu banco de dados qual a tipo do campo registro
se for texto
é so colocar aspas
Set banco = bancodedados.OpenRecordset([Ô]select nome from funcionario where registro =[ô][Ô] & CDbl(txtnumeroregistro.Text)) & [Ô] [ô] [Ô]
que da certo
se for texto
é so colocar aspas
Set banco = bancodedados.OpenRecordset([Ô]select nome from funcionario where registro =[ô][Ô] & CDbl(txtnumeroregistro.Text)) & [Ô] [ô] [Ô]
que da certo
mesmo com as com as aspas nao da certo ja mudei meu campo registro para double tambem nao deu certo se alguem puder me ajudar por favor,
a unica coisa que quero com esta rotina e que ao usuario digitar seu registro correspondente em uma text box, e ao programa fazer a consulta analisar o campo nome do bd a adiciona-lo em outra textbox, se estiver no caminho certo alguem me ajude com este erro, se nao me deeuma luz de como fazer isto..
obrigado a todos...
a unica coisa que quero com esta rotina e que ao usuario digitar seu registro correspondente em uma text box, e ao programa fazer a consulta analisar o campo nome do bd a adiciona-lo em outra textbox, se estiver no caminho certo alguem me ajude com este erro, se nao me deeuma luz de como fazer isto..
obrigado a todos...
Ola amigo cole no seu form e ve se funciona
apertando ENTER no txtnumreg
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
Dim rs As New ADODB.Recordset
If KeyAscii = 13 Then
rs.Open [Ô]select nome from funcionario where id=[Ô] & txtnumeroregistro.Text, cnn
If rs.EOF Then
txtnome.Text = [Ô][Ô]
MsgBox [Ô]Esse Funcionario Não Existe ![Ô]
Else
txtnome.Text = rs([Ô]nome[Ô])
End If
End If
End Sub
Abraços
Marcelo Fazan
apertando ENTER no txtnumreg
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
Dim rs As New ADODB.Recordset
If KeyAscii = 13 Then
rs.Open [Ô]select nome from funcionario where id=[Ô] & txtnumeroregistro.Text, cnn
If rs.EOF Then
txtnome.Text = [Ô][Ô]
MsgBox [Ô]Esse Funcionario Não Existe ![Ô]
Else
txtnome.Text = rs([Ô]nome[Ô])
End If
End If
End Sub
Abraços
Marcelo Fazan
Public cnn As ADODB.Connection
Public rs As Recordset
Private Sub cmdvalidaregistro_Click()
If rs.State = 1 Then rs.Close
rs.Open [Ô]select nome from funcionario where registro=[ô][Ô] & txtnumeroregistro.Text & [Ô][ô][Ô], cnn, adOpenStatic
If rs.RecordCount = 0 Then
MsgBox [Ô]funcionario nao encontrado[Ô]
txtnome.Text = [Ô][Ô]
Else
txtnome.Text = rs([Ô]nome[Ô])
End If
End Sub
Private Sub Form_load()
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
cnn.Open [Ô]provider=microsoft.jet.oledb.3.51;data source=[Ô] & App.Path & [Ô]/funcionario.mdb;[Ô]
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
If InStr(1, [Ô]1234567890,[Ô] & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
assim funciona
é que vc misturou ado com dao
e ai ficou tudo confuso
Public rs As Recordset
Private Sub cmdvalidaregistro_Click()
If rs.State = 1 Then rs.Close
rs.Open [Ô]select nome from funcionario where registro=[ô][Ô] & txtnumeroregistro.Text & [Ô][ô][Ô], cnn, adOpenStatic
If rs.RecordCount = 0 Then
MsgBox [Ô]funcionario nao encontrado[Ô]
txtnome.Text = [Ô][Ô]
Else
txtnome.Text = rs([Ô]nome[Ô])
End If
End Sub
Private Sub Form_load()
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
cnn.Open [Ô]provider=microsoft.jet.oledb.3.51;data source=[Ô] & App.Path & [Ô]/funcionario.mdb;[Ô]
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
If InStr(1, [Ô]1234567890,[Ô] & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
assim funciona
é que vc misturou ado com dao
e ai ficou tudo confuso
mesmo com todas essas dicas o erro acontece sempre na intruçao
RS.OPEN do cmdvalidaregistro.
RS.OPEN do cmdvalidaregistro.
deve estar com erro em outra parrte
o exemplo anexo é o que postei para vc
o exemplo anexo é o que postei para vc
ola amigo
rs.Open [Ô]select nome from funcionario where registro=[ô][Ô] & txtnumeroregistro.Text & [Ô][ô][Ô], cnn, adOpenStatic
coloquei como id anteriormente essa linha [Ô]COLOQUEI [Ô] ID
rs.Open [Ô]select nome from funcionario where id =[Ô] & txtnumeroregistro.Text, cnn
agora corrigi seria [Ô]REGISTRO [Ô]
rs.Open [Ô]select nome from funcionario where registro=[Ô] & txtnumeroregistro.Text, cnn
tenta novamente , colai
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
Dim rs As New ADODB.Recordset
If KeyAscii = 13 Then
rs.Open [Ô]select nome from funcionario where registro=[Ô] & txtnumeroregistro.Text, cnn
If rs.EOF Then
txtnome.Text = [Ô][Ô]
MsgBox [Ô]Esse Funcionario Não Existe ![Ô]
Else
txtnome.Text = rs([Ô]nome[Ô])
End If
End If
End Sub
Abs
Marcelo Fazan
rs.Open [Ô]select nome from funcionario where registro=[ô][Ô] & txtnumeroregistro.Text & [Ô][ô][Ô], cnn, adOpenStatic
coloquei como id anteriormente essa linha [Ô]COLOQUEI [Ô] ID
rs.Open [Ô]select nome from funcionario where id =[Ô] & txtnumeroregistro.Text, cnn
agora corrigi seria [Ô]REGISTRO [Ô]
rs.Open [Ô]select nome from funcionario where registro=[Ô] & txtnumeroregistro.Text, cnn
tenta novamente , colai
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
Dim rs As New ADODB.Recordset
If KeyAscii = 13 Then
rs.Open [Ô]select nome from funcionario where registro=[Ô] & txtnumeroregistro.Text, cnn
If rs.EOF Then
txtnome.Text = [Ô][Ô]
MsgBox [Ô]Esse Funcionario Não Existe ![Ô]
Else
txtnome.Text = rs([Ô]nome[Ô])
End If
End If
End Sub
Abs
Marcelo Fazan
bem pessoal depois de muita dor de cabeça, e com uma ajuda do nosso amigo, [txt-color=#e80000] Marcelo Fazam, [/txt-color][txt-color=#080808] consegui resolver o meu problema, e ai vai a soluçao para todos verificarem como ficou. [/txt-color]
um projeto simples mas que me deu muita dor de cabeça.
simplismente fazer o retorno de uma consulta em uma textbox.
bem pessoal amanha estarei encerrando o topico.
um projeto simples mas que me deu muita dor de cabeça.
simplismente fazer o retorno de uma consulta em uma textbox.
bem pessoal amanha estarei encerrando o topico.
agora me deixou preocupado
marcelo fazam por favor me aponte o erro nesse codigo por favor
Public cnn As ADODB.Connection
Public rs As Recordset
Private Sub cmdvalidaregistro_Click()
If rs.State = 1 Then rs.Close
rs.Open [Ô]select nome from funcionario where registro=[ô][Ô] & txtnumeroregistro.Text & [Ô][ô][Ô], cnn, adOpenStatic
If rs.RecordCount = 0 Then
MsgBox [Ô]funcionario nao encontrado[Ô]
txtnome.Text = [Ô][Ô]
Else
txtnome.Text = rs([Ô]nome[Ô])
End If
End Sub
Private Sub Form_load()
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
cnn.Open [Ô]provider=microsoft.jet.oledb.3.51;data source=[Ô] & App.Path & [Ô]/funcionario.mdb;[Ô]
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
If InStr(1, [Ô]1234567890,[Ô] & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
obrigado
marcelo fazam por favor me aponte o erro nesse codigo por favor
Public cnn As ADODB.Connection
Public rs As Recordset
Private Sub cmdvalidaregistro_Click()
If rs.State = 1 Then rs.Close
rs.Open [Ô]select nome from funcionario where registro=[ô][Ô] & txtnumeroregistro.Text & [Ô][ô][Ô], cnn, adOpenStatic
If rs.RecordCount = 0 Then
MsgBox [Ô]funcionario nao encontrado[Ô]
txtnome.Text = [Ô][Ô]
Else
txtnome.Text = rs([Ô]nome[Ô])
End If
End Sub
Private Sub Form_load()
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
cnn.Open [Ô]provider=microsoft.jet.oledb.3.51;data source=[Ô] & App.Path & [Ô]/funcionario.mdb;[Ô]
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
Private Sub txtnumeroregistro_KeyPress(KeyAscii As Integer)
If InStr(1, [Ô]1234567890,[Ô] & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
obrigado
na parte que vejo o problema seria
voce esta contando numero de registros Count
Nesse comando quer dizer [Ô] ate fim de arquivo[Ô]
algo assim .... do restante parece ta certo
Vlw
Abs
Marcelo Fazan
Citação:If rs.RecordCount = 0 Then
voce esta contando numero de registros Count
Citação:If rs.EOF Then
Nesse comando quer dizer [Ô] ate fim de arquivo[Ô]
algo assim .... do restante parece ta certo
Vlw
Abs
Marcelo Fazan
Tópico encerrado , respostas não são mais permitidas