Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nykel

erro 3265, tabelas diferentes

Recommended Posts

Bom dia galera...

Eu tenho estudado VB 6 somene com a ajuda de tópicos e apostilas disponibilizadas na net e estou com um probleminha que não estou entendendo.

estou com dois formulários, cadastro de produtos e cadastro de funcionários, ou seja, duas tabelas no meu banco de dados.

O problema é que estou usando praticamente a mesma codificação para o banco de dados, porém, está dando o erro 3265.

Eu consigo gravar os dados nessa tabela, mas quando tento navegar atraés do recordset dá esse erro.

Acredito que meu recordset não tenha acesso a essa tabela, mas não sei como fazer isso, acessar uma outra tabela.

 

Muito obrigado pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite meu amigo nykel

para navegar entre registro use o objeto adodc que ja é um objeto que faz esta função.

 

Qual quer coisa poste o seu codigo, ai dou uma olhada para você.

 

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para tabelas diferentes você deve usar recordset diferentes, um para cada, a não ser que faça a consulta com join.

O objeto citado realmente te permite fazer a navegação sem configurar nada, mas se já está com seu código pronto, poste aí que damos uma olhada onde está o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi Nilson...

agora entendí o que quiz dizer...

eu sei usar o objeto adodc, mas nesse caso específico gostaria de usar 4 comandButton, pq eu acho o objeto adodc pequeno.

 

acho que o Claudio matou a charada, mas ainda não pude testar, vou tentar, mas msmo assim postei meu código...

pelo que eu entendí eu teria que criar um outro objeto recordset, se eu estiver errado me corrijam.

 

sou novo em forum, esse é o único que me cadastrei até agora...

não estava acostuado a pessoas desconhecidas me ajudando, rsrs

mas é uma sensação muito legal...

obrigado

 

Option Explicit
Dim sql As String
Dim rs As New ADODB.Recordset
Dim con As New ADODB.Connection
Dim checkFoto As String
Dim comando As String

Private Sub cmdBuscar_Click(Index As Integer)
	Select Case Index
	
	Case 0
		rs.MoveFirst
		montaCampos
		
	Case 1
		rs.MovePrevious
			If rs.BOF Then
				MsgBox "Começo do arquivo!", vbExclamation, Me.Caption
				rs.MoveNext
			End If
			montaCampos
			
	Case 2
		rs.MoveNext
			If rs.EOF Then
				MsgBox "Fim do arquivo!", vbExclamation, Me.Caption
				rs.MovePrevious
			End If
			montaCampos
	Case 3
		rs.MoveLast
		montaCampos
	
	End Select
	
End Sub

Private Sub Form_Load()
	Call conexao
	Call limpaCampos
	calendar.Value = Date
	Me.txtData = Me.calendar.Value
	comando = "select * from tabFuncionarios"
	rs.Open comando, con
	carregarCaracter
	
End Sub

Sub conexao()
	con.Open "Provider = microsoft.jet.oledb.4.0;Data Source = C:\Users\LG E500\Desktop\atalhos\Pizzaria\dbPizzaria.mdb;"
	con.CursorLocation = adUseClient
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite nykel

 

uma coisa que percebi que sua sub não tem tratamento de erro, pois quando você mandar mover para o procimo registro e ele ja esta no final vai gerar um erro basta você tratar este erro e dar uma mensaguem para o seu usuario que esta no final da tabela ou seja (que esta no ultimo restro).

 

E o mesmo serve para os outro.

 

sua função esta coreta, meno sna falta do tratamento do erro, que é fundamental.

 

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sinta-se a vontade para postar Nykel. Estamos aqui para isso.

 

E isso mesmo, você precisa criar outro recordset.

 

Assim como declarou:

Dim rs As New ADODB.Recordset

 

Você pode fazer:

Dim rs2 As New ADODB.Recordset

 

A conexão pode ser a mesma para os dois.

 

uma coisa que percebi que sua sub não tem tratamento de erro, pois quando você mandar mover para o procimo registro e ele ja esta no final vai gerar um erro

Ele tratou esse erro, ou pelo menos tentou, olha abaixo:

Case 1
		rs.MovePrevious
			If rs.BOF Then
				MsgBox "Começo do arquivo!", vbExclamation, Me.Caption
				rs.MoveNext
			End If
			montaCampos
			
	Case 2
		rs.MoveNext
			If rs.EOF Then
				MsgBox "Fim do arquivo!", vbExclamation, Me.Caption
				rs.MovePrevious
			End If
			montaCampos

Nykel, se quiser deixar assim, não há problema, mas eu particularmente, acho que fica mais funcional se, quando chegar no BOF você fizer rs.movefirt e quando chegar no EOF fizer rs.movelast

 

Mas de resto está correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.