Ir para conteúdo
Fórum Script Brasil
  • 0

ONDE ESTOU COMENDO BOLA?


Leandro_Pirozzi

Pergunta

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 por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

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.Connection
cnContato.ConnectionString = conexao
cnContato.CursorLocation = adUseClient
cnContato.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/

Link para o comentário
Compartilhar em outros sites

  • 0

Estou fazendo em access mesmo por eqto depois passo pra oracle.

Fiz dessa maneira porém ele agora exibe a mensagem

Run time error

Tipo 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

Link para o comentário
Compartilhar em outros sites

  • 0

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 Sub

Obrigadao Kuroi pela força de sempre.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...