Ir para conteúdo

Arquivado

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

flaviojr

Conexão MySQL com VB 6

Recommended Posts

Olá pessoal estou com o seguinte problema aqui não consigo navegar entre os campos com MyRS.MoveNext apenas carrego o primeiro registro.Será que é problema com o MySQL 5 ou com a Linguagem que estou usando que na situação é VB 6.Desde já agradeço a atenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostra como você está fazendo.

O problema acontece quando eu utilizo uma combo acaba dando problemano botão de navegação eu coloco assim: cmd_proximo ()click If rs.EOF = False Then rsL.MoveNext If rs.EOF Then rs.MoveLast End If Else If rs.BOF Then rs.MoveLast End If codigo pra carregar a combo: com dados de outra tabela cmbCidade.ClearSet rs = New RecordsetIf rs.State = adStateOpen Then rs.Closers.Open "SELECT Cidade FROM tb_cidades ORDER BY Cidade", Database, adOpenDynamic, adLockOptimisticWhile Not rs.EOFcmbCidade.AddItem rs!Cidaders.MoveNextWendSet rs = Nothing____________________________carrega registro atual na propriedade text da combocmbCidade.text = rs!CidadeSerá que para navegar pelos registros é necessário outro código pois pretendo utilizar a combo para selecionar a cidade para o registro atual e manter a cidadeescolhida para o registro em uso na propriedade text da combo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está dando erro nesse Loop? Não está incluindo todas as cidades?Caso seja isso verifica se há mais de uma cidade na tabela mesmo, pois o código está corretoE para que a RS carregada no evento da combo seja a mesma do botão você tem que declará-la na parte general (acima de todos os eventos, no topo da área de códigos).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está dando erro nesse Loop? Não está incluindo todas as cidades?Caso seja isso verifica se há mais de uma cidade na tabela mesmo, pois o código está corretoE para que a RS carregada no evento da combo seja a mesma do botão você tem que declará-la na parte general (acima de todos os eventos, no topo da área de códigos).

Muito Obrigado pela ajuda valew muito mesmoNa tabela cidades eu possuo até o momento 5 cidades cadastradas e na combo aparece apenas 3 que é a quantidade de cadastros que eu tenho na tabela alunos que é onde eu queria inserir a cidade vinda da outra tabela.Será que a tabela cidades só vai carregar os campos de acordo com a quantidade de registros que existem na tabela de alunos que no caso são apenas 3 e na tabela cidade 5 e a combo mostra apenas três.Também estava pensando não sei como fazer mais acho que algo assim também poderia ajuda criar um listview em outro form onde irá ter a tabela cidades e colocar um botão no cadastro de alunos que qdo o usuario for inserir uma cidade para o aluno ele possa clique neste botão e abra o form com o listview e selecione a cidade que irá ser vinculada a tabela alunos e aparecer em um textbox. não sei se é mais simples, mais é que até agora não obtive muito sucesso com a combo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu disse no outro post essa sua rotina para carregar:

cmbCidade.ClearSet rs = New RecordsetIf rs.State = adStateOpen Then rs.Closers.Open "SELECT Cidade FROM tb_cidades ORDER BY Cidade", Database, adOpenDynamic, adLockOptimisticWhile Not rs.EOFcmbCidade.AddItem rs!Cidaders.MoveNextWendSet rs = Nothing
Está, aparentemente, correta. Não há porque não incluir todos os registros na combo.

 

Mas só para desencargo de consciência tenta colocar mais registros na tabela de alunos para ver se realmente está influenciando em algo. Não consigo pensar em como ou porque isso ocorreria.

 

Quanto ao outro modo de escolher a cidade a combo é a melhor opção. Poupando você de cirar outro form com outros objetos e mais codificação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu disse no outro post essa sua rotina para carregar:

cmbCidade.ClearSet rs = New RecordsetIf rs.State = adStateOpen Then rs.Closers.Open "SELECT Cidade FROM tb_cidades ORDER BY Cidade", Database, adOpenDynamic, adLockOptimisticWhile Not rs.EOFcmbCidade.AddItem rs!Cidaders.MoveNextWendSet rs = Nothing
Está, aparentemente, correta. Não há porque não incluir todos os registros na combo.Mas só para desencargo de consciência tenta colocar mais registros na tabela de alunos para ver se realmente está influenciando em algo. Não consigo pensar em como ou porque isso ocorreria.Quanto ao outro modo de escolher a cidade a combo é a melhor opção. Poupando você de cirar outro form com outros objetos e mais codificação.
Eu também prefiro a combo outra coisa que eu ia falar pra você é que no load do form eu também carrego a tabela cidades juntamente com outras 3 da seguinte forma:
Set rsMySQL = New ADODB.Recordset	rsMySQL.CursorType = adOpenStatic	rsMySQL.CursorLocation = adUseClient	rsMySQL.LockType = adLockPessimistic		   rsMySQL.Source = "SELECT tb_alunos.*, tb_cidades.Cidade, tb_empresas.Empresa, tb_bairros.*, tb_cidades.Estado FROM tb_alunos INNER JOIN tb_bairros ON tb_alunos.Id_Bairro = tb_bairros.Id_Bairro INNER JOIN tb_cidades ON tb_alunos.Id_Cidade = tb_cidades.Id_Cidade INNER JOIN tb_empresas ON tb_alunos.Id_Empresas = tb_empresas.Id_Empresas" 			      rsMySQL.ActiveConnection = adoDataConn	rsMySQL.Open
E para a combo eu utilizo uma private sub preenchecombo() e a já tentei carregar no load do form e no evento gotfocus da combo mais em ambas não houve sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou iniciante ainda com isso precisamente 3 semanas nesse mundo de programação VB6 - MySQL será que eu fiz alguma coisa errada com o código abaixo que estou utilizando pra fazer a aplicação, pois só da erro quando uso as combobox ai quando eu uso texbox funciona apesar que ainda não testei como salvar.

 

Option ExplicitPrivate WithEvents adoDataConn As ADODB.ConnectionPrivate WithEvents rsMySQL As ADODB.RecordsetDim mblnAddMode As BooleanDim ctlControle As ControlDim strConnect As StringDim strProvider As StringDim strDataSource As StringDim strDataBaseName As StringDim usr_id As StringDim pass As StringDim mySqlIP As StringPrivate Sub cmbCidade_GotFocus()	 cboCidade.ClearSet rsMySQL = New RecordsetIf rsMySQL.State = adStateOpen Then rsMySQL.ClosersMySQL.Open "SELECT tb_cidades.Cidade FROM tb_cidades WHERE tb_cidades.Cidade = tb_cidades.Cidade", adoDataConn, adOpenDynamic, adLockOptimisticWhile Not rsMySQL.EOFcboCidade.AddItem rsMySQL!CidadersMySQL.MoveNextWendSet rsMySQL = NothingErro: 'se houver erros faz o tratamentoIf Err.Number <> 0 Then  MsgBox ("Erro #: " & Str(Err.Number) & Err.Description)  Exit SubEnd IfEnd SubPrivate Sub cboEmpresa_GotFocus()cboEmpresa.ClearSet rsMySQL = New RecordsetIf rsMySQL.State = adStateOpen Then rsMySQL.ClosersMySQL.Open "SELECT tb_empresas.Empresa From tb_empresas Where tb_empresas.Empresa = tb_empresas.Empresa ORDER BY tb_empresas.Empresa", adoDataConn, adOpenDynamic, adLockOptimisticWhile Not rsMySQL.EOFcboEmpresa.AddItem rsMySQL!EmpresarsMySQL.MoveNextWendSet rsMySQL = NothingErro: 'se houver erros faz o tratamentoIf Err.Number <> 0 Then  MsgBox ("Erro #: " & Str(Err.Number) & Err.Description)  Exit SubEnd IfEnd SubPrivate Sub cmdAbreConexao_Click()				mySqlIP = "localhost"	usr_id = "root" '	pass = "flaviojr"	  	strConnect = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=sunrise_db;User=root;Password=flaviojr;Option=3;"		Set adoDataConn = New ADODB.Connection		  	adoDataConn.CursorLocation = adUseClient		adoDataConn.Open strConnect  		Set rsMySQL = New ADODB.Recordset		rsMySQL.CursorType = adOpenStatic		rsMySQL.CursorLocation = adUseClient		rsMySQL.LockType = adLockPessimistic		rsMySQL.Source = "SELECT tb_alunos.*, tb_cidades.Cidade, tb_empresas.Empresa, tb_bairros.*, tb_cidades.Estado FROM tb_alunos INNER JOIN tb_bairros ON tb_alunos.Id_Bairro = tb_bairros.Id_Bairro INNER JOIN tb_cidades ON tb_alunos.Id_Cidade = tb_cidades.Id_Cidade INNER JOIN tb_empresas ON tb_alunos.Id_Empresas = tb_empresas.Id_Empresas" 		rsMySQL.ActiveConnection = adoDataConn		rsMySQL.Open		cmdAbreConexao.Enabled = False	cmdFechaConexao.Enabled = True		 HabilitaNavegacao	 cmdInclui.Enabled = True	 cmdExclui.Enabled = True	 cmdEdita.Enabled = True	 	 	 	 End SubPrivate Sub cmdFechaConexao_Click()		adoDataConn.Close	Set adoDataConn = Nothing		cmdFechaConexao.Enabled = False		cmdAbreConexao.Enabled = True	Call LimparTexto	 End SubPublic Sub PreencheCombo()cboCidade.ClearSet rsMySQL = New RecordsetIf rsMySQL.State = adStateOpen Then rsMySQL.CloseSet rsMySQL = NothingrsMySQL.Open "SELECT tb_cidades.Cidade FROM tb_cidades WHERE tb_cidades.Cidade = tb_cidades.Cidade", adoDataConn, adOpenDynamic, adLockOptimisticDo While Not rsMySQL.EOFcboCidade.AddItem rsMySQL!CidadersMySQL.MoveNextLoop'WendSet rsMySQL = NothingErro: 'se houver erros faz o tratamentoIf Err.Number <> 0 Then  MsgBox ("Erro #: " & Str(Err.Number) & Err.Description)  Exit SubEnd IfEnd SubPrivate Sub LimparTexto()txtNome.Text = ""txtRua.Text = ""txtDataNascimento.Text = ""txtNatural.Text = ""txtReligiao.Text = ""txtSexo.Text = ""txtRG.Text = ""txtCPF.Text = ""txtProfissao.Text = ""txtEmpresa.Text = ""txtEmail.Text = ""txtDDD.Text = ""txtTelefone.Text = ""txtCelular.Text = ""txtTelefoneComercial.Text = ""txtNumero.Text = ""txtComplemento.Text = ""txtCEP.Text = ""txtBairro.Text = ""txtCidade.Text = ""txtEstado.Text = ""txtAnotacoes.Text = ""txtEmail.Text = ""End SubPrivate Sub CarregaRegistros()On Error Resume Next   If rsMySQL.BOF = True Or rsMySQL.EOF = True Then		Exit Sub  	End If	     	txtId_Aluno.Text = rsMySQL!Id_Aluno & ""	txtNome.Text = rsMySQL!Nome & ""	txtRua.Text = rsMySQL!Rua & ""	txtDataNascimento.Text = rsMySQL!DataNascimento & ""	txtNatural.Text = rsMySQL!Natural & ""	txtReligiao.Text = rsMySQL!Religiao & ""	txtSexo.Text = rsMySQL!Sexo & ""	txtRG.Text = rsMySQL!RG & ""	txtCPF.Text = rsMySQL!CPF & ""	txtProfissao.Text = rsMySQL!Profissao & ""	txtEmpresa.Text = rsMySQL!Empresa & ""	txtEmail.Text = rsMySQL!Email & ""	txtDDD.Text = rsMySQL!DDD & ""	txtTelefone.Text = rsMySQL!Telefone & ""	txtCelular.Text = rsMySQL!Celular & ""	txtTelefoneComercial.Text = rsMySQL!TelefoneComercial & ""	txtNumero.Text = rsMySQL!Numero & ""	txtComplemento.Text = rsMySQL!Complemento & ""	txtCEP.Text = rsMySQL!CEP & ""	txtBairro.Text = rsMySQL!Bairro & ""	txtCidade.Text = rsMySQL!Cidade & ""	txtEstado.Text = rsMySQL!Estado & ""	txtAnotacoes.Text = rsMySQL!Anotacoes & ""	txtEmail.Text = rsMySQL!Email & ""	 cboCidade.Text = rsMySQL!Cidade & ""	 cboEmpresa.Text = rsMySQL!Empresa & ""End SubPrivate Sub Form_Load()   DesabilitaNavegacao   cmdInclui.Enabled = False   cmdExclui.Enabled = False   cmdEdita.Enabled = False  End SubPrivate Sub lvButtons_H3_Click()frmCidades.ShowEnd SubPrivate Sub rsMySQL_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)	If mblnAddMode = False Then		'se nao estiver no modo de inclusão		'carrega os controles com os dados		Call CarregaRegistros   End IfEnd SubPrivate Sub cmdPrimeiro_Click()	If rsMySQL.BOF = False Then		rsMySQL.MoveFirst			ElseIf rsMySQL.BOF = True _		And rsMySQL.EOF = True Then				MsgBox "Não há dados no Arquivo!", , "Sem Dados !"	End If	End SubPrivate Sub cmdUltimo_Click()	If rsMySQL.EOF = False Then		rsMySQL.MoveLast	ElseIf rsMySQL.BOF = True _		And rsMySQL.EOF = True Then		MsgBox "Não há dados no Arquivo!", , "Sem Dados !"	End IfEnd SubPrivate Sub cmdAnterior_Click()	If rsMySQL.BOF = False Then		rsMySQL.MovePrevious	   		If rsMySQL.BOF = True Then			rsMySQL.MoveFirst		End If	Else		If rsMySQL.EOF Then	  			  MsgBox "Não há dados no Arquivo!", , "Sem Dados !"		Else			rsMySQL.MoveFirst		End If	End If	End SubPrivate Sub cmdProximo_Click()		If rsMySQL.EOF = False Then		rsMySQL.MoveNext				If rsMySQL.EOF Then			rsMySQL.MoveLast		End If	Else		If rsMySQL.BOF Then			MsgBox "Não há dados no Arquivo!", , "Sem Dados !"		Else			rsMySQL.MoveLast		End If	End IfEnd SubPrivate Sub DesabilitaNavegacao()	cmdPrimeiro.Enabled = False	cmdUltimo.Enabled = False	cmdProximo.Enabled = False	cmdAnterior.Enabled = FalseEnd SubPrivate Sub HabilitaNavegacao()	cmdPrimeiro.Enabled = True	cmdUltimo.Enabled = True	cmdProximo.Enabled = True	cmdAnterior.Enabled = TrueEnd SubPrivate Sub cmdInclui_Click()		If cmdInclui.Caption = "&Incluir" And _		cmdFechaConexao.Enabled = True Then	   		cmdInclui.Caption = "&Cancela"					cmdSalva.Enabled = True				Call DesabilitaNavegacao				mblnAddMode = True	   				Call LimparTexto								cmdEdita.Enabled = False		cmdExclui.Enabled = False			txtNome.Locked = False	txtRua.Locked = False	txtDataNascimento.Locked = False	txtNatural.Locked = False	txtReligiao.Locked = False	txtSexo.Locked = False	txtRG.Locked = False	txtCPF.Locked = False	txtProfissao.Locked = False	txtEmpresa.Locked = False	txtEmail.Locked = False	txtDDD.Locked = False	txtTelefone.Locked = False	txtCelular.Locked = False	txtTelefoneComercial.Locked = False	txtNumero.Locked = False	txtComplemento.Locked = False	txtCEP.Locked = False	txtBairro.Locked = False	txtCidade.Locked = False	txtEstado.Locked = False	txtAnotacoes.Locked = False	txtEmail.Locked = False	 					txtNome.SetFocus			ElseIf cmdInclui.Caption = "&Cancela" Then		cmdInclui.Caption = "&Incluir"		cmdSalva.Enabled = False		Call HabilitaNavegacao				cmdEdita.Enabled = True		cmdExclui.Enabled = True				mblnAddMode = False					txtNome.Locked = True	txtRua.Locked = True	txtDataNascimento.Locked = True	txtNatural.Locked = True	txtReligiao.Locked = True	txtSexo.Locked = True	txtRG.Locked = True	txtCPF.Locked = True	txtProfissao.Locked = True	txtEmpresa.Locked = True	txtEmail.Locked = True	txtDDD.Locked = True	txtTelefone.Locked = True	txtCelular.Locked = True	txtTelefoneComercial.Locked = True	txtNumero.Locked = True	txtComplemento.Locked = True	txtCEP.Locked = True	txtBairro.Locked = True	txtCidade.Locked = True	txtEstado.Locked = True	txtAnotacoes.Locked = True	txtEmail.Locked = True				If cmdFechaConexao.Enabled = True Then			Call CarregaRegistros		End If	End IfEnd SubPrivate Sub GravaRegistros()	rsMySQL!Id_Aluno = txtId_Aluno.Text	rsMySQL!Nome = txtNome.Text	rsMySQL!Rua = txtRua.Text	rsMySQL!DataNascimento = CDate(txtDataNascimento.Text)	 rsMySQL!Natural = txtNatural.Text	rsMySQL!Religiao = txtReligiao.Text	rsMySQL!Sexo = txtSexo.Text	 rsMySQL!RG = txtRG.Text	rsMySQL!CPF = txtCPF.Text	 rsMySQL!Profissao = txtProfissao.Text	rsMySQL!Empresa = txtEmpresa.Text	rsMySQL!Email = txtEmail.Text	rsMySQL!DDD = txtDDD.Text	 rsMySQL!Telefone = txtTelefone.Text	rsMySQL!Celular = txtCelular.Text	 rsMySQL!TelefoneComercial = txtTelefoneComercial.Text	rsMySQL!Numero = txtNumero.Text	rsMySQL!Complemento = txtComplemento.Text	rsMySQL!CEP = txtCEP.Text	 rsMySQL!Bairro = txtBairro.Text	rsMySQL!Cidade = txtCidade.Text	 rsMySQL!Estado = txtEstado.Text	rsMySQL!Anotacoes = txtAnotacoes.Text	rsMySQL!Email = txtEmail.Text	End SubPrivate Sub cmdSalva_Click()	On Error Resume Next	If cmdInclui.Caption = "&Cancela" Then		rsMySQL.AddNew	End If  	If txtRG.Text <> "" And txtNome <> "" And txtCPF <> "" Then	   Call GravaRegistros	   rsMySQL.Update	Else	   MsgBox "Falta informar dados !!!!", vbCritical, "Incluindo dados"	   rsMySQL.CancelUpdate	   mblnAddMode = False	   Exit Sub	End If		mblnAddMode = False	cmdSalva.Enabled = False		If cmdInclui.Caption = "&Cancela" Then		cmdInclui.Caption = "&Incluir"	End If			If cmdEdita.Caption = "&Cancela" Then		cmdEdita.Caption = "&Editar"	End If	txtNome.Locked = True	txtRua.Locked = True	txtDataNascimento.Locked = True	txtNatural.Locked = True	txtReligiao.Locked = True	txtSexo.Locked = True	txtRG.Locked = True	txtCPF.Locked = True	txtProfissao.Locked = True	txtEmpresa.Locked = True	txtEmail.Locked = True	txtDDD.Locked = True	txtTelefone.Locked = True	txtCelular.Locked = True	txtTelefoneComercial.Locked = True	txtNumero.Locked = True	txtComplemento.Locked = True	txtCEP.Locked = True	txtBairro.Locked = True	txtCidade.Locked = True	txtEstado.Locked = True	txtAnotacoes.Locked = True	txtEmail.Locked = True		Call HabilitaNavegacao	 	txtNome.BackColor = vbWhite	txtRua.BackColor = vbWhite	txtDataNascimento.BackColor = vbWhite	txtNatural.BackColor = vbWhite	txtReligiao.BackColor = vbWhite	txtSexo.BackColor = vbWhite	txtRG.BackColor = vbWhite	txtCPF.BackColor = vbWhite	txtProfissao.BackColor = vbWhite	txtEmpresa.BackColor = vbWhite	txtEmail.BackColor = vbWhite	txtDDD.BackColor = vbWhite	txtTelefone.BackColor = vbWhite	txtCelular.BackColor = vbWhite	txtTelefoneComercial.BackColor = vbWhite	txtNumero.BackColor = vbWhite	txtComplemento.BackColor = vbWhite	txtCEP.BackColor = vbWhite	txtBairro.BackColor = vbWhite	txtCidade.BackColor = vbWhite	txtEstado.BackColor = vbWhite	txtAnotacoes.BackColor = vbWhite	txtEmail.BackColor = vbWhite	 			cmdEdita.Enabled = True	cmdInclui.Enabled = True	cmdExclui.Enabled = True	lblEOF = rsMySQL.EOF	lblBOF = rsMySQL.BOFEnd SubPrivate Sub cmdExclui_Click()	If rsMySQL.EOF = False And _		rsMySQL.BOF = False And _		cmdFechaConexao.Enabled = True Then	  	  If MsgBox("Confirma Exclusão deste Registro ? ", vbYesNo, "Excluir Registros") = vbYes Then				On Error Resume Next				adoDataConn.BeginTrans				rsMySQL.Delete						adoDataConn.CommitTrans	   				rsMySQL.MoveNext		If rsMySQL.EOF = True Then			rsMySQL.MoveLast			If rsMySQL.BOF = True Then				Call limpaControles				MsgBox "Não há dados no Arquivo!", , "Sem Dados !"			End If		End If	  End If	ElseIf rsMySQL.EOF = True And rsMySQL.BOF = True Then				MsgBox "Não há dados no Arquivo!", , "Sem Dados !"	End If	End SubPrivate Sub cmdEdita_Click()	If cmdEdita.Caption = "&Editar" And _		cmdFechaConexao.Enabled = True Then					cmdEdita.Caption = "&Cancela"			cmdSalva.Enabled = True				Call DesabilitaNavegacao		cmdInclui.Enabled = False		cmdExclui.Enabled = False			   				   	txtNome.Locked = False	txtRua.Locked = False	txtDataNascimento.Locked = False	txtNatural.Locked = False	txtReligiao.Locked = False	txtSexo.Locked = False	txtRG.Locked = False	txtCPF.Locked = False	txtProfissao.Locked = False	txtEmpresa.Locked = False	txtEmail.Locked = False	txtDDD.Locked = False	txtTelefone.Locked = False	txtCelular.Locked = False	txtTelefoneComercial.Locked = False	txtNumero.Locked = False	txtComplemento.Locked = False	txtCEP.Locked = False	txtBairro.Locked = False	txtCidade.Locked = False	txtEstado.Locked = False	txtAnotacoes.Locked = False	txtEmail.Locked = False	  	   					txtNome.BackColor = vbYellow	txtRua.BackColor = vbYellow	txtDataNascimento.BackColor = vbYellow	txtNatural.BackColor = vbYellow	txtReligiao.BackColor = vbYellow	txtSexo.BackColor = vbYellow	txtRG.BackColor = vbYellow	txtCPF.BackColor = vbYellow	txtProfissao.BackColor = vbYellow	txtEmpresa.BackColor = vbYellow	txtEmail.BackColor = vbYellow	txtDDD.BackColor = vbYellow	txtTelefone.BackColor = vbYellow	txtCelular.BackColor = vbYellow	txtTelefoneComercial.BackColor = vbYellow	txtNumero.BackColor = vbYellow	txtComplemento.BackColor = vbYellow	txtCEP.BackColor = vbYellow	txtBairro.BackColor = vbYellow	txtCidade.BackColor = vbYellow	txtEstado.BackColor = vbYellow	txtAnotacoes.BackColor = vbYellow	txtEmail.BackColor = vbYellow				txtNome.SetFocus			ElseIf cmdEdita.Caption = "&Cancela" Then		cmdEdita.Caption = "&Editar"				cmdSalva.Enabled = False				Call HabilitaNavegacao				cmdInclui.Enabled = True		cmdExclui.Enabled = True		   		txtNome.Locked = True	txtRua.Locked = True	txtDataNascimento.Locked = True	txtNatural.Locked = True	txtReligiao.Locked = True	txtSexo.Locked = True	txtRG.Locked = True	txtCPF.Locked = True	txtProfissao.Locked = True	txtEmpresa.Locked = True	txtEmail.Locked = True	txtDDD.Locked = True	txtTelefone.Locked = True	txtCelular.Locked = True	txtTelefoneComercial.Locked = True	txtNumero.Locked = True	txtComplemento.Locked = True	txtCEP.Locked = True	txtBairro.Locked = True	txtCidade.Locked = True	txtEstado.Locked = True	txtAnotacoes.Locked = True	txtEmail.Locked = True		   		txtNome.BackColor = vbWhite	txtRua.BackColor = vbWhite	txtDataNascimento.BackColor = vbWhite	txtNatural.BackColor = vbWhite	txtReligiao.BackColor = vbWhite	txtSexo.BackColor = vbWhite	txtRG.BackColor = vbWhite	txtCPF.BackColor = vbWhite	txtProfissao.BackColor = vbWhite	txtEmpresa.BackColor = vbWhite	txtEmail.BackColor = vbWhite	txtDDD.BackColor = vbWhite	txtTelefone.BackColor = vbWhite	txtCelular.BackColor = vbWhite	txtTelefoneComercial.BackColor = vbWhite	txtNumero.BackColor = vbWhite	txtComplemento.BackColor = vbWhite	txtCEP.BackColor = vbWhite	txtBairro.BackColor = vbWhite	txtCidade.BackColor = vbWhite	txtEstado.BackColor = vbWhite	txtAnotacoes.BackColor = vbWhite	txtEmail.BackColor = vbWhite							If cmdFechaConexao.Enabled = True Then			Call CarregaRegistros		End If	End IfEnd SubPrivate Sub cmdSair_Click()		If cmdFechaConexao.Enabled = True Then		Call cmdFechaConexao_Click	End If		Unload Me	EndEnd Sub'ao pressionar a tecla enter aciona o tabPrivate Sub txtcodigo_KeyPress(KeyAscii As Integer)	If KeyAscii = 13 Then		SendKeys "{TAB}"	End IfEnd Sub'ao pressionar a tecla enter aciona o tabPrivate Sub txtNome_KeyPress(KeyAscii As Integer)	If KeyAscii = 13 Then		SendKeys "{TAB}"	End IfEnd Sub'ao pressionar a tecla enter aciona o tabPrivate Sub txtEndereco_KeyPress(KeyAscii As Integer)	If KeyAscii = 13 Then		SendKeys "{TAB}"	End IfEnd Sub'ao pressionar a tecla enter aciona o tabPrivate Sub txtnascimento_KeyPress(KeyAscii As Integer)	If KeyAscii = 13 Then		SendKeys "{TAB}"	End IfEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas onde está o problema??você tem certeza de que a query retorna mais de uma linha?

Também não sei o que acontece apenas que quando se tem mais de uma tabela no select ou utilizo uma combo pegando o campo de outra tabela eu não consigo navegar entre os campos e quando eu tento deletar, inserir algum registro ele também exibe um erro dizendo que a informação da coluna da chave é insuficiente para realizar a operação.E quando carrego o banco sem a combo carregando os campos de uma tabela apenas exibindo o registro atual na propriedade text consigo navegar entre os campos porém ainda assim não consigo realizar as operações de inclusão, exclusão...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tenta assim:

 

Public Sub CarregaCidade()	  dim rsCidades as new adodb.recordset	  rsCidades.Open "SELECT cidade FROM tb_cidades", adoDataConn, adOpenDynamic, adLockOptimistic	  while not rsCidades.eof			cboCidade.additem rsCidades("cidades")			rsCidades.movenext	  wend	  set rsCidades = nothingEnd Sub

Sempre que precisar carregar a combo de cidade chama essa rotina.

O problema que está ocorrendo é que lá no form_load note que você carrega somente as cidades utilizadas na outra tabela por isso que não aparecem todos os registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tenta assim:

Public Sub CarregaCidade()	  dim rsCidades as new adodb.recordset	  rsCidades.Open "SELECT cidade FROM tb_cidades", adoDataConn, adOpenDynamic, adLockOptimistic	  while not rsCidades.eof			cboCidade.additem rsCidades("cidades")			rsCidades.movenext	  wend	  set rsCidades = nothingEnd Sub
Sempre que precisar carregar a combo de cidade chama essa rotina.O problema que está ocorrendo é que lá no form_load note que você carrega somente as cidades utilizadas na outra tabela por isso que não aparecem todos os registros.
Muito Obrigado Valew deu certo.Porém não consigo incluir um novo registro excluir ou atualizar por exemplo na hora de incluir um novo registro na tabela alunos, como irei fazer para que a cidade que já está pré-cadastrada na tabela cidades fique vinculada a este registro.E na hora de excluir o registro ele exclua somente o registro da tabela alunos mantendo a tabela cidade inalterada.E outra coisa caso eu esteja inserindo um cadastro e a cidade não estiver cadastrada, será que existe a possibilidade de tem um botão ou um item na combo que chame o form de cadastro de cidades e ao finalizar o cadastro da cidade ele atualize a combo com a nova cidade inclusa.Será que a forma com que eu esteja carregando os campos e realizando os metodos de incluir, editar, excluir via ADO não sejam recomendaveis. será que realizar estas operações via mysql torne as melhores. porém como realizar via mysql? muda a forma de carregar os campos, salvar, editar, excluir? ainda não sei como proceder em relação a isto.Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora de excluir um registro da tabela alunos a tabela de cidades não será alterada, a não quer você também execute com comando DELETE para ela.

 

Para junto com o nome da cidade salvar o código dela, você pode utilizar a propriedade itemdata que serve para isso:

while not rsCidades.eof			cboCidade.additem rsCidades("cidades")			cboCidade.itemdata(cbocidade.newindex) = rsCidades("codigo")			rsCidades.movenextwend

E na hora de salvar você verifica qual o código da cidade selecionada:

codigo = cboCidade.itemdata(cboCidade.ListIndex)

Já quanto ao modo de interagir com o banco de dados o que você pode é usar só SQL tanto para selecionar, incluir, alterar e apagar registros.

Dá uma conferida nessa série de artigos:

http://www.imasters.com.br/artigo/2940/vis..._consultas_sql/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora de excluir um registro da tabela alunos a tabela de cidades não será alterada, a não quer você também execute com comando DELETE para ela.Para junto com o nome da cidade salvar o código dela, você pode utilizar a propriedade itemdata que serve para isso:

while not rsCidades.eof			cboCidade.additem rsCidades("cidades")			cboCidade.itemdata(cbocidade.newindex) = rsCidades("codigo")			rsCidades.movenextwend
E na hora de salvar você verifica qual o código da cidade selecionada:
codigo = cboCidade.itemdata(cboCidade.ListIndex)
Já quanto ao modo de interagir com o banco de dados o que você pode é usar só SQL tanto para selecionar, incluir, alterar e apagar registros.Dá uma conferida nessa série de artigos:http://www.imasters.com.br/artigo/2940/vis..._consultas_sql/
Obrigado Luiz sem palavras ai pra te agradecer pela ajuda valew mesmoFlavioJr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava tentando arrumar o código aqui colocando em módulos só que não estou conseguindo navegar entre os registros da tabela.

 

O que acontece é que não aparece os novos registros no form mais o rs.movenext , last, previous, first funcionam

Option Explicit	Public cn As ADODB.Connection	Public rsMySQL As ADODB.Recordset	Public SQL As String	Public ConectaMySQL As StringPublic Sub DBAtivo()		Set cn = New ADODB.Connection   ' Set rsMySQL = New ADODB.Recordset	Set cn = CreateObject("ADODB.Connection")					 	ConectaMySQL = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=sunrise_db;User=root;Password=flaviojr;Option=3;"			  	cn.CursorLocation = adUseClient			  	cn.Open ConectaMySQL			  	Set rsMySQL = New ADODB.Recordset   	rsMySQL.CursorType = adOpenStatic   	rsMySQL.CursorLocation = adUseClient   	rsMySQL.LockType = adLockPessimistic  	rsMySQL.ActiveConnection = cn	  	   ' rsMySQL.Open		End Sub			Public Sub DBFechar()			 Set cn = Nothing  	If rsMySQL Is Nothing Then Else rsMySQL.Close	Set rsMySQL = Nothing		End Sub

e o código que é carregado no form

 

Private Sub Form_Load()Call DBAtivoSQL = "SELECT * FROM tb_alunos"Set rsMySQL = cn.Execute(SQL)txtNome.Text = rsMySQL!NomeEnd Sub

e no botão de navegação movenext

 If Not rsMySQL.EOF Then rsMySQL.MoveNext	 If rsMySQL.EOF And rsMySQL.RecordCount > 0 Then		Beep		rsMySQL.MoveLast		MsgBox "Esté é o ultimo registro.", _			   vbInformation, "Ultimo Registro"	 End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre que você alterar a tabela carregue novamente o recordset.Deve ser isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre que você alterar a tabela carregue novamente o recordset.Deve ser isso.

Valew pela ajuda Mais o pior é que ainda não deu certo, o estranho é que quando está toda a conexão no form funciona.

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.