none
Conexão com banco de dados vb6

    Pergunta

  • Oi eu tenho um banco de dados chamado Cliente esta na pasta c:\ Cliente

    meu banco de dados tem 3 tabelas uma tabela chamada tb_nome com os campos codnome e Nome outra tabela chamada tb_sobrenome com os campos codnome e Sobrenome e uma tabela chamada tb_Telefone com os campos codnome e telefone todos os codnome são auto incremento

    e no meu programa eu tenho 4 textbox txtnome txtsobrenome txttelefone e txtpequisar e 4 botoes btnincluir btnalterar btnexcluir btnpesquisar  gostaria de saber como eu coloco itens no banco de dados utilizando os textbox e o botão incluir em vb6?

    quarta-feira, 12 de maio de 2010 14:21

Respostas

  • Dim objConn As ADODB.Connection
    
    Private Sub Form_Load()
    
     'Aqui no load do form vc abre sua conexão com o banco de dados
     Set objConn = New ADODB.Connection
     objConn.ConnectionString = "Provider=SQLOLEDB.1;Server=CMAQ239420\SQLEXPRESS2005;Database=TESTE;UID=seu_usuario;PWD=sua_senha;"
     objConn.Open
    
    End Sub
    
    Private Sub btnincluir_Click()
    
     'esta linha inclui o nome
     objConn.Execute ("INSERT INTO tb_nome (nome) values('" & Me.txtnome.Text & "')")
     
     'Este trecho de código recupera o id autonumerico da inclusão acima e joga na variavel
     'varMaxCodNome para incluir nas tabelas tb_sobrenome e tb_telefone
     Dim objRs As New ADODB.Recordset
     objRs.Open "SELECT MAX(CODNOME) AS MaxCodeNome FROM tb_nome", objConn
     Dim varMaxCodNome As Integer
     varMaxCodNome = objRs!MaxCodeNome
     
     'esta linha inclui o Sobrenome
     objConn.Execute ("INSERT INTO tb_sobrenome (codnome,Sobrenome) values(" & varMaxCodNome & ",'" & Me.txtsobrenome.Text & "')")
    
     'esta linha inclui o telefone
     objConn.Execute ("INSERT INTO tb_telefone (codnome,Telefone) values(" & varMaxCodNome & ",'" & Me.txttelefone.Text & "')")
    
     MsgBox "Dados cadastrados com sucesso!", vbInformation
     
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
     objConn.Close
     Set objConn = Nothing
    End Sub


    msn: poseidonfba@hotmail.com
    quarta-feira, 12 de maio de 2010 20:42
  • Viu que eu fiz um select atraves do SQL Managemente Express unindo as 3 tabelas pelo codnome.
    Private Sub btnpesquisar_Click()
    
      Dim varSQL As String
      varSQL = "SELECT tb_nome.codnome, tb_nome.NOME, tb_sobrenome.Sobrenome, tb_Telefone.telefone "
      varSQL = varSQL & "FROM tb_nome INNER JOIN "
      varSQL = varSQL & "tb_sobrenome ON tb_nome.codnome = tb_sobrenome.codnome INNER JOIN "
      varSQL = varSQL & "tb_Telefone ON tb_nome.codnome = tb_Telefone.codnome "
      varSQL = varSQL & "WHERE (tb_nome.NOME = '" & Me.txtpequisar.Text & "')"
      
      Dim objRs As New ADODB.Recordset
      objRs.Open varSQL, objConn
      If objRs.EOF = False Then
      
        Me.txtnome.Text = objRs!Nome
        Me.txtsobrenome.Text = objRs!Sobrenome
        Me.txttelefone.Text = objRs!Telefone
      
      Else
      
        Me.txtnome.Text = ""
        Me.txtsobrenome.Text = ""
        Me.txttelefone.Text = ""
        
        MsgBox "Não existe cadastro com esse nome!", vbInformation
      End If
      
      objRs.Close
      Set objRs = Nothing
    
    End Sub


    msn: poseidonfba@hotmail.com
    • Marcado como Resposta Ricardo.Pieroni quinta-feira, 13 de maio de 2010 14:20
    quinta-feira, 13 de maio de 2010 10:12
  • Segue o evento do botão alterar, bem simples.

    Apos a pesquisa poderá alterar os dados.

     

    Private Sub btnalterar_Click()
    
      Dim varCodNome As Integer
      varCodNome = CInt(Me.txtCodNome.Text)
      
      'esta linha altera o nome
      objConn.Execute ("UPDATE tb_nome SET nome='" & Me.txtnome.Text & "' WHERE codnome=" & varCodNome)
      
      'esta linha altera o Sobrenome
      objConn.Execute ("UPDATE tb_sobrenome SET Sobrenome='" & Me.txtsobrenome.Text & "' WHERE codnome=" & varCodNome)
    
      'esta linha altera o telefone
      objConn.Execute ("UPDATE tb_telefone SET Telefone='" & Me.txttelefone.Text & "' WHERE codnome=" & varCodNome)
    
      MsgBox "Dados alterados com sucesso!", vbInformation
      
    End Sub


    msn: poseidonfba@hotmail.com
    • Marcado como Resposta Ricardo.Pieroni quinta-feira, 13 de maio de 2010 18:05
    quinta-feira, 13 de maio de 2010 16:32
  • Segue o exemplo do botão de excluir, bem simples também, apos pesquisar, o usuario clica no botão de excluir.

     

    Private Sub btnexcluir_Click()
      
      Dim varCodNome As Integer
      varCodNome = CInt(Me.txtCodNome.Text)
      
      'esta linha exclui o Sobrenome
      objConn.Execute ("DELETE FROM tb_sobrenome WHERE codnome=" & varCodNome)
    
      'esta linha exclui o telefone
      objConn.Execute ("DELETE FROM tb_telefone WHERE codnome=" & varCodNome)
    
      'esta linha exclui o nome
      objConn.Execute ("DELETE FROM tb_nome WHERE codnome=" & varCodNome)
      
      'limpa os campos
      Me.txtCodNome.Text = ""
      Me.txtnome.Text = ""
      Me.txtsobrenome.Text = ""
      Me.txttelefone.Text = ""
      
      MsgBox "Dados excluidos com sucesso!", vbInformation
      
    End Sub


    msn: poseidonfba@hotmail.com
    • Marcado como Resposta Ricardo.Pieroni quinta-feira, 13 de maio de 2010 19:02
    quinta-feira, 13 de maio de 2010 18:49

Todas as Respostas

  • Oi ricardo, qual o banco de dados?? é access?



    msn: poseidonfba@hotmail.com
    quarta-feira, 12 de maio de 2010 14:38
  • é sql 2005
    quarta-feira, 12 de maio de 2010 15:35
  • Ricardo, primeiramente, nem todos os codnome devem ser autonumeração, se ele for a chave primaria da tabela tb_nome , então nas outras tabelas codnome será chave estrangeira, nesse caso tire  o autonumeração do codname das outras tabelas

    msn: poseidonfba@hotmail.com
    quarta-feira, 12 de maio de 2010 16:14
  • Boa tarde,

    A principio pensei que fosse acesso por access entao fiz apenas uma insercao em 3 campos no banco de dados.

    estrutura do design = 1 form, 3 txtbox e 1 botão
    Codigo = 1 procedimento e 1 funcao

    Dim Conexao As New ADODB.Connection
    Dim Rst     As New ADODB.Recordset
    Dim caminhobanco As String

    Private Sub btnincluir_Click()
        Call ConectarBancoDados 'procedimento para se conectar com o banco
        Call OpenRst("Select * From Cliente", Rst) 'funcao para passar a consulta e recordset que vai abrir

    Rst.AddNew  'adiciona uma linha na tabela cliente
    Rst("Nome").Value = txtnome.Text 'insere conteudo do txt no campo nome
    Rst.Fields("Endereco").Value = txtendereco.Text
    Rst("Telefone").Value = txttelefone.Text
    Rst.Update 'atualiza a tabela

    Conexao.Close 'fecha conexao com o banco de dados
    End Sub
    Public Sub ConectarBancoDados()
    'access
    caminhobanco = "C:\Documents and Settings\user\Desktop\Nova pasta\Cliente.mdb" ' caminho do banco de dados
    Conexao.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & caminhobanco
    Conexao.Open 'Abri o banco de dados
    'sql
    Conexao.Provider = "SQLOLEDB.1"
    Conexao.Properties("Data Source").Value = "INSTANCIA" 'SQL2000 ou SQL2005
    Conexao.Properties("Initial Catalog").Value = "NOME DO BANCO"
    Conexao.Properties("User ID").Value = "LOGIN"
    Conexao.Properties("Password").Value = "SENHA DO BANCO SE TIVER"
    Conexao.Open
    End Sub
    Public Function OpenRst(Str As String, Recset As ADODB.Recordset)
            Set Recset = New ADODB.Recordset
            Recset.ActiveConnection = Conexao
            Recset.CursorLocation = adUseClient
            Recset.CursorType = adOpenDynamic
            Recset.LockType = adLockOptimistic
            Recset.Source = Str
            Recset.Open 'abre a recordset
    End Function

    Após ter feito o exemplo vi que era Sql2005 hehe
    aew não poderia post apenas o access pois nada iria adiantar então coloquei a conexao do SQL

    Nesta conexao ja utilizei com SQL2000 e SQL2005  funcionou.

    Espero ter ajudado com alguma coisa, qualquer coisa responde aew.

    Atenciosamente,
    Jesiel

    quarta-feira, 12 de maio de 2010 17:54
  • ja esta retirado os codinomes como auto numeração, agora qual será o código do botão incluir para receber os text box? 

     

    quarta-feira, 12 de maio de 2010 20:19
  • Primeiramente vai no menu Project do visual basic e clica em References...
    Depois procura pela referencia Microsoft ActiveX Data Objects 2.7 Library
    Tem que adicionar esta referencia para fazer a conexão com o banco de dados.
    Seleciona ela e da OK.
    msn: poseidonfba@hotmail.com
    quarta-feira, 12 de maio de 2010 20:41
  • Dim objConn As ADODB.Connection
    
    Private Sub Form_Load()
    
     'Aqui no load do form vc abre sua conexão com o banco de dados
     Set objConn = New ADODB.Connection
     objConn.ConnectionString = "Provider=SQLOLEDB.1;Server=CMAQ239420\SQLEXPRESS2005;Database=TESTE;UID=seu_usuario;PWD=sua_senha;"
     objConn.Open
    
    End Sub
    
    Private Sub btnincluir_Click()
    
     'esta linha inclui o nome
     objConn.Execute ("INSERT INTO tb_nome (nome) values('" & Me.txtnome.Text & "')")
     
     'Este trecho de código recupera o id autonumerico da inclusão acima e joga na variavel
     'varMaxCodNome para incluir nas tabelas tb_sobrenome e tb_telefone
     Dim objRs As New ADODB.Recordset
     objRs.Open "SELECT MAX(CODNOME) AS MaxCodeNome FROM tb_nome", objConn
     Dim varMaxCodNome As Integer
     varMaxCodNome = objRs!MaxCodeNome
     
     'esta linha inclui o Sobrenome
     objConn.Execute ("INSERT INTO tb_sobrenome (codnome,Sobrenome) values(" & varMaxCodNome & ",'" & Me.txtsobrenome.Text & "')")
    
     'esta linha inclui o telefone
     objConn.Execute ("INSERT INTO tb_telefone (codnome,Telefone) values(" & varMaxCodNome & ",'" & Me.txttelefone.Text & "')")
    
     MsgBox "Dados cadastrados com sucesso!", vbInformation
     
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
     objConn.Close
     Set objConn = Nothing
    End Sub


    msn: poseidonfba@hotmail.com
    quarta-feira, 12 de maio de 2010 20:42
  • Joga este código ai na parte do código do teu formulário.

     

    Ai na primeira linha foi criado um objeto do tipo ADODB.Connection para ser usado na conexão.

    Depois o Evento form_Load do formulario que abre a conexão com o banco de dados

    O evento do botão incluir que contem as rotinas para inclusão no banco de dados.

    E o evento Form_Unload para fechar a conexão.

    Ai só estão as rotinas de inclusão, com o tempo passo as rotinas de alteração, exclusão e pesquisas

     

     


    msn: poseidonfba@hotmail.com
    quarta-feira, 12 de maio de 2010 20:45
  • eu entendi a logica do botão incluir e eu gostaria de saber como utilizo o botão pesquisar por exemplo colocar o nome no textbox4 e se tiver esse nome no banco de dados quando aperto o botão pesquisar ele coloca os dados nome sobrenome e telefone no respectivos textboxs
    quinta-feira, 13 de maio de 2010 02:08
  • Fala Ricardo, vai marcando como resposta esses posts ai que servem pra vc.

     

    Seguinte estou passando o código de pesquisa.

    Vc terá um textbox txtpesquisar que irá digitar um nome neme e clicar no botão btnpesquisar , dessa forma ele faz um select no banco e verifica se existe registro, se existir ele mostra os dados, senão ele limpa os campos.

     

     


    msn: poseidonfba@hotmail.com
    quinta-feira, 13 de maio de 2010 10:11
  • Viu que eu fiz um select atraves do SQL Managemente Express unindo as 3 tabelas pelo codnome.
    Private Sub btnpesquisar_Click()
    
      Dim varSQL As String
      varSQL = "SELECT tb_nome.codnome, tb_nome.NOME, tb_sobrenome.Sobrenome, tb_Telefone.telefone "
      varSQL = varSQL & "FROM tb_nome INNER JOIN "
      varSQL = varSQL & "tb_sobrenome ON tb_nome.codnome = tb_sobrenome.codnome INNER JOIN "
      varSQL = varSQL & "tb_Telefone ON tb_nome.codnome = tb_Telefone.codnome "
      varSQL = varSQL & "WHERE (tb_nome.NOME = '" & Me.txtpequisar.Text & "')"
      
      Dim objRs As New ADODB.Recordset
      objRs.Open varSQL, objConn
      If objRs.EOF = False Then
      
        Me.txtnome.Text = objRs!Nome
        Me.txtsobrenome.Text = objRs!Sobrenome
        Me.txttelefone.Text = objRs!Telefone
      
      Else
      
        Me.txtnome.Text = ""
        Me.txtsobrenome.Text = ""
        Me.txttelefone.Text = ""
        
        MsgBox "Não existe cadastro com esse nome!", vbInformation
      End If
      
      objRs.Close
      Set objRs = Nothing
    
    End Sub


    msn: poseidonfba@hotmail.com
    • Marcado como Resposta Ricardo.Pieroni quinta-feira, 13 de maio de 2010 14:20
    quinta-feira, 13 de maio de 2010 10:12
  • entendi e como eu faria o botão alterar utilizando o botao pesquisar para aparecer os dados que eu quero alterar nos textbox e depois de modificar os dados usar o botão alterar

     o botão pesquisar eu ja vi no exemplo acima e como faria só o botão alterar

     

    ps: uma duvida meio boba mas ainda não consegui resolver tenho um tabstrip com tres abas e gostaria de tirar a ultima mas ainda não consegui nas propriedades da pagina eu vejo que o tab tem 3 abas mas não acho nada que possa retirar essa terceira aba

    quinta-feira, 13 de maio de 2010 14:20
  • Ricardo, adiciona mais um textbox no seu formulário chamdo txtCodNome , ele irá receber o CodNome quando vc fizer a pesquisa por nome.

    Ele servirá para fazermos as alterações e as exclusões no banco de dados.

     

    Segue abaixo o novo código do botão pesquisar:

     

    Private Sub btnpesquisar_Click()
    
      Dim varSQL As String
      varSQL = "SELECT tb_nome.codnome, tb_nome.NOME, tb_sobrenome.Sobrenome, tb_Telefone.telefone "
      varSQL = varSQL & "FROM tb_nome INNER JOIN "
      varSQL = varSQL & "tb_sobrenome ON tb_nome.codnome = tb_sobrenome.codnome INNER JOIN "
      varSQL = varSQL & "tb_Telefone ON tb_nome.codnome = tb_Telefone.codnome "
      varSQL = varSQL & "WHERE (tb_nome.NOME = '" & Me.txtpequisar.Text & "')"
      
      Dim objRs As New ADODB.Recordset
      objRs.Open varSQL, objConn
      If objRs.EOF = False Then
      
        Me.txtCodNome.Text = CStr(objRs!CodNome)
        Me.txtnome.Text = objRs!Nome
        Me.txtsobrenome.Text = objRs!Sobrenome
        Me.txttelefone.Text = objRs!Telefone
      
      Else
      
        Me.txtCodNome.Text = ""
        Me.txtnome.Text = ""
        Me.txtsobrenome.Text = ""
        Me.txttelefone.Text = ""
        
        MsgBox "Não existe cadastro com esse nome!", vbInformation
      End If
      
      objRs.Close
      Set objRs = Nothing
    
    End Sub


    msn: poseidonfba@hotmail.com
    quinta-feira, 13 de maio de 2010 16:21
  • 1 - Para remover a aba da TabStrip  vc clica com o botão direito em cima dela, e clica em propriedades .

    2 - Na janela que abrir clica na aba Tabs .

    3 - Lá no campo Index vc seleciona a aba que quer excluir e clica no botão Remove Tab

     


    msn: poseidonfba@hotmail.com
    quinta-feira, 13 de maio de 2010 16:25
  • obs: Após vc adicionar o txtCodNome no formulário coloca a propriedade Enabled dele como false , pois ele não poderá ser editável
    msn: poseidonfba@hotmail.com
    quinta-feira, 13 de maio de 2010 16:30
  • Segue o evento do botão alterar, bem simples.

    Apos a pesquisa poderá alterar os dados.

     

    Private Sub btnalterar_Click()
    
      Dim varCodNome As Integer
      varCodNome = CInt(Me.txtCodNome.Text)
      
      'esta linha altera o nome
      objConn.Execute ("UPDATE tb_nome SET nome='" & Me.txtnome.Text & "' WHERE codnome=" & varCodNome)
      
      'esta linha altera o Sobrenome
      objConn.Execute ("UPDATE tb_sobrenome SET Sobrenome='" & Me.txtsobrenome.Text & "' WHERE codnome=" & varCodNome)
    
      'esta linha altera o telefone
      objConn.Execute ("UPDATE tb_telefone SET Telefone='" & Me.txttelefone.Text & "' WHERE codnome=" & varCodNome)
    
      MsgBox "Dados alterados com sucesso!", vbInformation
      
    End Sub


    msn: poseidonfba@hotmail.com
    • Marcado como Resposta Ricardo.Pieroni quinta-feira, 13 de maio de 2010 18:05
    quinta-feira, 13 de maio de 2010 16:32
  • Ricardo, vc deve está usando um SStab e não um TabStrip .

     

    O SStab tem uma propriedade chamada Tabs , lá vc informa o número de de abas que vc deseja utilizar

     

    Por default ao ser incluido um componete no formulário ele coloca com 3 abas, se quiser remover uma, digita 2 lá na propriedade tabs, deve resolver.


    msn: poseidonfba@hotmail.com
    quinta-feira, 13 de maio de 2010 17:30
  • bom eu tava usando o sstab mesmo, eu tentei colocar o 2 no tabs mas ele da um erro informando:  invalid property value    acredito que o programa deve estar chamando esta tab em alguma parte do programa por isso ocorre esse erro oque vc acha?
    quinta-feira, 13 de maio de 2010 18:05
  • obrigado pelos codigos dos botões alterar incluir e pesqusar alem da ajuda no sstab agora para finalizar o programa criado como ficaria o codigo do botão excluir por exemplo escolho o nome pelo botão pesquisar e se for esse que eu quero clico no botão excluir para remover ele do banco de dados agradeço pela ajuda
    quinta-feira, 13 de maio de 2010 18:10
  • Talvez tenha algum componente adicionado na ultima tab, seleciona a ultima tab verifica se tem algum componente, se tiver deleta eles e depois coloca 2 na propriedade Tabs ...

    msn: poseidonfba@hotmail.com
    quinta-feira, 13 de maio de 2010 18:16
  • na tab filial nao tem nada mesmo mas tem codigos que chamam a tabfilial vou excluir esses codigos e tentar por 2 de novo

     

    ps: quando vc puder posta um codigo para o botão excluir agradeço

    quinta-feira, 13 de maio de 2010 18:45
  • Segue o exemplo do botão de excluir, bem simples também, apos pesquisar, o usuario clica no botão de excluir.

     

    Private Sub btnexcluir_Click()
      
      Dim varCodNome As Integer
      varCodNome = CInt(Me.txtCodNome.Text)
      
      'esta linha exclui o Sobrenome
      objConn.Execute ("DELETE FROM tb_sobrenome WHERE codnome=" & varCodNome)
    
      'esta linha exclui o telefone
      objConn.Execute ("DELETE FROM tb_telefone WHERE codnome=" & varCodNome)
    
      'esta linha exclui o nome
      objConn.Execute ("DELETE FROM tb_nome WHERE codnome=" & varCodNome)
      
      'limpa os campos
      Me.txtCodNome.Text = ""
      Me.txtnome.Text = ""
      Me.txtsobrenome.Text = ""
      Me.txttelefone.Text = ""
      
      MsgBox "Dados excluidos com sucesso!", vbInformation
      
    End Sub


    msn: poseidonfba@hotmail.com
    • Marcado como Resposta Ricardo.Pieroni quinta-feira, 13 de maio de 2010 19:02
    quinta-feira, 13 de maio de 2010 18:49
  • vlw mesmo pelos codigos vão me ajudar bastante nos estudos mas depois eu gostaria de tirar umas duvidas se vc puder me ajudar amanha eu posto aki pode ser?

    quinta-feira, 13 de maio de 2010 19:02
  • Tranquilo cara, vai postando as duvidas ai que assim que der a gente responde ai.

    msn: poseidonfba@hotmail.com
    quinta-feira, 13 de maio de 2010 19:19
  • bom eu tenho uma pergunta hoje se eu tiver uma tabela e alterar seus dados com os dados dos textbox ela só ira ser alterada se eu tiver todos os campos em textbox que  a tabela tiver por exemplo se eu tiver um textbox a menos ele ira salvar os dados na tabela? meu problema é que eu tive de alterar um programa e apagar alguns campos  e eu não consigo salvar não da erro mas não altera os dados pode ser esse o problema?

     

     

    sexta-feira, 14 de maio de 2010 19:26
  • Sim, se vc removeu alguns textboxs do formularios, vai causar erro, terá que tirálos também do código.

    E também mudar a estrutura dos sqls para operar apenas com os campos que existem.


    msn: poseidonfba@hotmail.com
    sexta-feira, 14 de maio de 2010 21:10