Leandro_Pirozzi Postado Fevereiro 17, 2009 Denunciar Share Postado Fevereiro 17, 2009 (editado) Galera não sei onde estou errando.Declerei as variaveis, mas diz q a conexao esta fechada ou é inválida.alguém me dê uma luz.Private Sub cmdcad_Click() Dim SQL As String Dim rsContato As ADODB.Recordset Dim cnContato As ADODB.Connection If Not Verifica_Contatos Then MsgBox "Campo obrigatório vazio, favor verificar.", vbInformation, "Atenção" Exit Sub End If Set rsContato = New ADODB.Recordset SQL = "INSERT INTO CONTATOS_CONTATO " SQL = SQL & "(CODEMP, NOMEMPRESA, NOMCONT, ANIVERSARIO, CARGOCONT, EMAILCONT, TELCONT, FAXCONT, RAMAL )" SQL = SQL & "VALUES ( '" & Me.txtcodemp.Text & "','" & Me.txtempresacont.Text & "', " SQL = SQL & "'" & Me.txtnomecont.Text & "' , " SQL = SQL & "'" & Me.txtcargocont.Text & "' , " SQL = SQL & "'" & Me.txtmailcont.Text & "' , " SQL = SQL & "'" & Me.txttelcont.Text & "' , " SQL = SQL & "'" & Me.txtramalcont.Text & "' , " SQL = SQL & "'" & Me.txtfaxcont.Text & "','" & Me.txtanivercont.Text & "')" Set rsContato.ActiveConnection = cnContato rsContato.Open SQL LimpaContato Verifica_Contatos MsgBox "Cadastro de contato efetuado com sucesso" End Sub Editado Fevereiro 17, 2009 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 17, 2009 Denunciar Share Postado Fevereiro 17, 2009 olha aqui q você declara a conexao em cima, mas não abre:Dim cnContato As ADODB.Connection quando você chega aqui: Set rsContato.ActiveConnection = cnContato rsContato.Open SQL[/code] se a conexao não tiver aberta vai dar erro mesmo. pra abrir a conexao é o seguinte codigo: [code]Set cnContato = New ADODB.ConnectioncnContato.ConnectionString = conexaocnContato.CursorLocation = adUseClientcnContato.Open agora naquela segunda linha ali você tem q passar a conexao correta, isso varia dependendo do seu banco. se for access por exemplo, você faria assim: cnContato.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\caminho\banco.mdb;"se for algum outro banco, procure a string correta aqui: http://www.connectionstrings.com/ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 17, 2009 Autor Denunciar Share Postado Fevereiro 17, 2009 Estou fazendo em access mesmo por eqto depois passo pra oracle.Fiz dessa maneira porém ele agora exibe a mensagemRun time errorTipo de dados imcompatível na expressão de critério.Private Sub cmdcad_Click() Dim SQL As String Dim rsContato As ADODB.Recordset 'Declarando e abrindo conexao Dim cnContato As ADODB.Connection Set cnContato = New ADODB.Connection cnContato.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\CONTATOS.mdb; " cnContato.CursorLocation = adUseClient cnContato.Open If Not Verifica_Contatos Then MsgBox "Campo obrigatório vazio, favor verificar.", vbInformation, "Atenção" Exit Sub End If Set rsContato = New ADODB.Recordset SQL = "INSERT INTO CONTATOS_CONTATO " SQL = SQL & "(CODEMP, NOMEMPRESA, NOMCONT, ANIVERSARIO, CARGOCONT, EMAILCONT, TELCONT, FAXCONT, RAMAL)" SQL = SQL & "VALUES ( '" & Me.txtCodEmp.Text & "','" & Me.txtempresacont.Text & "', " SQL = SQL & "'" & Me.txtnomecont.Text & "' , " SQL = SQL & "'" & Me.txtcargocont.Text & "' , " SQL = SQL & "'" & Me.txtmailcont.Text & "' , " SQL = SQL & "'" & Me.txttelcont.Text & "' , " SQL = SQL & "'" & Me.txtramalcont.Text & "' , " SQL = SQL & "'" & Me.txtfaxcont.Text & "','" & Me.txtanivercont.Text & "')" Set rsContato.ActiveConnection = cnContato rsContato.Open SQL LimpaContato Verifica_Contatos MsgBox "Cadastro de contato efetuado com sucesso"End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 17, 2009 Autor Denunciar Share Postado Fevereiro 17, 2009 Corrigido e funcionando ok.Errei na ordem dos campos.Segue funcionando ok.Private Sub cmdcad_Click() Dim SQL As String Dim rsContato As ADODB.Recordset 'Declarando e abrindo conexao Dim cnContato As ADODB.Connection Set cnContato = New ADODB.Connection cnContato.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\CONTATOS.mdb; " cnContato.CursorLocation = adUseClient cnContato.Open If Not Verifica_Contatos Then MsgBox "Campo obrigatório vazio, favor verificar.", vbInformation, "Atenção" Exit Sub End If Set rsContato = New ADODB.Recordset SQL = "INSERT INTO CONTATOS_CONTATO " SQL = SQL & "(CODEMP, NOMEMPRESA, NOMCONT, ANIVERSARIO, CARGOCONT, EMAILCONT, TELCONT, FAXCONT, RAMAL)" SQL = SQL & "VALUES ( '" & Me.txtCodEmp.Text & "','" & Me.txtempresacont.Text & "', " SQL = SQL & "'" & Me.txtnomecont.Text & "' , " SQL = SQL & "'" & Me.txtanivercont.Text & "' , " SQL = SQL & "'" & Me.txtcargocont.Text & "' , " SQL = SQL & "'" & Me.txtmailcont.Text & "' , " SQL = SQL & "'" & Me.txttelcont.Text & "' , " SQL = SQL & "'" & Me.txtfaxcont.Text & "','" & Me.txtramalcont.Text & "')" Set rsContato.ActiveConnection = cnContato rsContato.Open SQL LimpaContato Verifica_Contatos MsgBox "Cadastro de contato efetuado com sucesso"End SubObrigadao Kuroi pela força de sempre. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Leandro_Pirozzi
Galera não sei onde estou errando.
Declerei as variaveis, mas diz q a conexao esta fechada ou é inválida.
alguém me dê uma luz.
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.