COLOCAR DADOS NO ACCESS .MDB VIA CODIGO
Pessoal tenho visual basic 2008 express edition e no form um botão e 4 textbox. Preciso de um código para colocar os dados digitados direto no access .mdb
Banco dados : Arquivo = databasegeral Tabela=contatos Campos= Campo1,Campo2,Campo3,Campo4
Já procurei de monte no vbmania e também no youtube, mas todos os casos tentados dão erro. Talvez eu esteja deixando de colocar alguma biblioteca, ou enfins deixando de fazer algo além da escrita do código.
Por favor alguém tem um código simples para isso, e me indicar também alguma coisa à mais que eu tenha de fazer ?
Agradeço e aguardo;
Banco dados : Arquivo = databasegeral Tabela=contatos Campos= Campo1,Campo2,Campo3,Campo4
Já procurei de monte no vbmania e também no youtube, mas todos os casos tentados dão erro. Talvez eu esteja deixando de colocar alguma biblioteca, ou enfins deixando de fazer algo além da escrita do código.
Por favor alguém tem um código simples para isso, e me indicar também alguma coisa à mais que eu tenha de fazer ?
Agradeço e aguardo;
Um tanto estranho,visto que tem vários tópicos na net onde possa fazer um exemplo simples com este.
Tem o site do Macoratti,Vbmania e outros mais.
Então poste seu código que o pessoal vai verificar onde está o erro.
Valeu.
Tem o site do Macoratti,Vbmania e outros mais.
Então poste seu código que o pessoal vai verificar onde está o erro.
Valeu.
Obrigado Omar pelo interesse. Veja bem eu não tenho nenhum dos códigos aqui, pois conforme deram erro eu descartei.
Mas em todo caso tudo que achei foram exemplos onde eu arrasto do database para o form com o mouse e aà aparece no meu form aquela barra superior sugerida pelo visual basic.
Não quero isso.
Em alguns outros casos o código escrito era muito extenso, e ainda não tenho a capacidade de entendê-lo.
Caso você queira me indicar alguma matéria que contenha um código simples eu leio sim. Agradeço;
Mas em todo caso tudo que achei foram exemplos onde eu arrasto do database para o form com o mouse e aà aparece no meu form aquela barra superior sugerida pelo visual basic.
Não quero isso.
Em alguns outros casos o código escrito era muito extenso, e ainda não tenho a capacidade de entendê-lo.
Caso você queira me indicar alguma matéria que contenha um código simples eu leio sim. Agradeço;
Preciso de um código para colocar os dados digitados [txt-color=#e80000]direto[/txt-color] no access .mdb
Espero que seja isto abaixo.
http://social.msdn.microsoft.com/Forums/pt-BR/vsvbasicpt/thread/981ed87d-d580-4338-936a-9d9627867d7a/
Espero que seja isto abaixo.
http://social.msdn.microsoft.com/Forums/pt-BR/vsvbasicpt/thread/981ed87d-d580-4338-936a-9d9627867d7a/
Omar enquanto passou o tempo tentei encontrar um código que já tentei usar.
Também não sei se devo usar mais algum código que o exemplo não sugeriu inicialmente.
Veja abaixo
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cnSQL
Dim adCmdText
Dim adCmdPaciente As New ADODB.Command [ô][ô][ô][ô]OCORRE UM ERRO AQUI
ERRO :TYPE ADODB.Command IS NOT DEFINED
Dim CodCliente As Long
Dim Resp As Byte
[ô]On Error Resume Next
CodCliente = Val(TextBox1.Text)
With adCmdPaciente
.ActiveConnection = cnSQL
.CommandType = adCmdText
.Prepared = True
If CodCliente > 0 Then
.CommandText = [Ô]UPDATE contatos set Obs = ?, DataCad = ? Where _[Ô]
CodCliente = [Ô] & CodCliente[Ô]
.Parameters([Ô]Campo1[Ô]) = TextBox2.Text
.Parameters([Ô]Campo2[Ô]) = TextBox3.Text
.Parameters([Ô]Campo3[Ô]) = TextBox4.Text
.Parameters([Ô]Campo4[Ô]) = TextBox5.Text
.Execute()
Else
.CommandText = [Ô]INSERT INTO contatos (Campo1,Campo2,Campo3,Campo4) Values (?, ?,?,?)[Ô]
.Parameters([Ô]Campo1[Ô]) = TextBox2.Text
.Parameters([Ô]Campo2[Ô]) = TextBox3.Text
.Parameters([Ô]Campo3[Ô]) = TextBox4.Text
.Parameters([Ô]Campo4[Ô]) = TextBox5.Text
.Execute()
End If
End With
adCmdPaciente = Nothing
End Sub
End Class
Agradeço;
Também não sei se devo usar mais algum código que o exemplo não sugeriu inicialmente.
Veja abaixo
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cnSQL
Dim adCmdText
Dim adCmdPaciente As New ADODB.Command [ô][ô][ô][ô]OCORRE UM ERRO AQUI
ERRO :TYPE ADODB.Command IS NOT DEFINED
Dim CodCliente As Long
Dim Resp As Byte
[ô]On Error Resume Next
CodCliente = Val(TextBox1.Text)
With adCmdPaciente
.ActiveConnection = cnSQL
.CommandType = adCmdText
.Prepared = True
If CodCliente > 0 Then
.CommandText = [Ô]UPDATE contatos set Obs = ?, DataCad = ? Where _[Ô]
CodCliente = [Ô] & CodCliente[Ô]
.Parameters([Ô]Campo1[Ô]) = TextBox2.Text
.Parameters([Ô]Campo2[Ô]) = TextBox3.Text
.Parameters([Ô]Campo3[Ô]) = TextBox4.Text
.Parameters([Ô]Campo4[Ô]) = TextBox5.Text
.Execute()
Else
.CommandText = [Ô]INSERT INTO contatos (Campo1,Campo2,Campo3,Campo4) Values (?, ?,?,?)[Ô]
.Parameters([Ô]Campo1[Ô]) = TextBox2.Text
.Parameters([Ô]Campo2[Ô]) = TextBox3.Text
.Parameters([Ô]Campo3[Ô]) = TextBox4.Text
.Parameters([Ô]Campo4[Ô]) = TextBox5.Text
.Execute()
End If
End With
adCmdPaciente = Nothing
End Sub
End Class
Agradeço;
Omar acabei de tentar com o código do link que você sugeriu. Veja abaixo o erro :
Dim CONEXAO As New OleDb.OleDbConnection(STRCONEXAO)
Dim CMD As New OleDb.OleDbCommand(COMANDO, CONEXAO)
COMANDO = [Ô]INSERT INTO contatos(Campo1,Campo2,Campo3,Campo4)[Ô]
COMANDO = COMANDO & [Ô] values ([Ô] & TextBox1.Text & [Ô], [Ô] & TextBox2.Text & [Ô], [Ô] & TextBox3.Text & [Ô],[Ô] & TextBox4.Text & [Ô])[Ô]
CONEXAO = New OleDb.OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\databasegeral.mdb[Ô])
CONEXAO.Open()
CMD = New OleDb.OleDbCommand(COMANDO, CONEXAO)
Try
CMD.ExecuteNonQuery()
Catch ex As Exception
Response.Write(ex.ToString()) ---------------------------------ERRO AQUI NESTA LINHA
ERRO : name response is not declared
Finally
CONEXAO.Close()
End Try
TextBox1.Text = [Ô][Ô]
TextBox2.Text = [Ô][Ô]
TextBox3.Text = [Ô][Ô]
Agradeço;
Dim CONEXAO As New OleDb.OleDbConnection(STRCONEXAO)
Dim CMD As New OleDb.OleDbCommand(COMANDO, CONEXAO)
COMANDO = [Ô]INSERT INTO contatos(Campo1,Campo2,Campo3,Campo4)[Ô]
COMANDO = COMANDO & [Ô] values ([Ô] & TextBox1.Text & [Ô], [Ô] & TextBox2.Text & [Ô], [Ô] & TextBox3.Text & [Ô],[Ô] & TextBox4.Text & [Ô])[Ô]
CONEXAO = New OleDb.OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\databasegeral.mdb[Ô])
CONEXAO.Open()
CMD = New OleDb.OleDbCommand(COMANDO, CONEXAO)
Try
CMD.ExecuteNonQuery()
Catch ex As Exception
Response.Write(ex.ToString()) ---------------------------------ERRO AQUI NESTA LINHA
ERRO : name response is not declared
Finally
CONEXAO.Close()
End Try
TextBox1.Text = [Ô][Ô]
TextBox2.Text = [Ô][Ô]
TextBox3.Text = [Ô][Ô]
Agradeço;
Estou fazendo um projeto simples para verificar como faz apesar de
existir várias formas de fazer.
Espere um pouco.
valeu
existir várias formas de fazer.
Espere um pouco.
valeu
Este é um teste com códigos retirado de projeto feito por outros
participantes do forum.Sendo modificado para você verificar
como se faz via código.
Valeu.
participantes do forum.Sendo modificado para você verificar
como se faz via código.
Valeu.
Gente por algum motivo isso abaixo não funciona no meu projeto.
Já coloquei
Imports System.Data
Imports System.Data.OleDb
também
Dim Con As New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\databasegeral.MDB[Ô])
Dim cmd As New OleDbCommand
Dim ds As DataSet
Dim da As OleDbDataAdapter
mas o código abaixo não funciona . Não dá erro, apenas não altera o banco de dados access .mdb
Try
cmd = Con.CreateCommand
Con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]UPDATE objetos SET text=[ô][Ô] & TextBox1.Text & [Ô][ô][Ô]
.Parameters.Add([Ô]@text[Ô], OleDbType.VarChar)
.Parameters([Ô]@text[Ô]).Value = TextBox1.Text
.ExecuteNonQuery()
End With
Con.Close()
MsgBox([Ô]Alteração Feita com Sucesso![Ô], MsgBoxStyle.Information, [Ô]Concluido[Ô])
Button2_Click(Nothing, Nothing)
Catch
MsgBox([Ô]Erro ao tentar alterar[Ô], MsgBoxStyle.Critical, [Ô]ERRO[Ô])
End Try
Se alguém enxergar algum erro me indica por favor
Agradeço;
Já coloquei
Imports System.Data
Imports System.Data.OleDb
também
Dim Con As New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\databasegeral.MDB[Ô])
Dim cmd As New OleDbCommand
Dim ds As DataSet
Dim da As OleDbDataAdapter
mas o código abaixo não funciona . Não dá erro, apenas não altera o banco de dados access .mdb
Try
cmd = Con.CreateCommand
Con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]UPDATE objetos SET text=[ô][Ô] & TextBox1.Text & [Ô][ô][Ô]
.Parameters.Add([Ô]@text[Ô], OleDbType.VarChar)
.Parameters([Ô]@text[Ô]).Value = TextBox1.Text
.ExecuteNonQuery()
End With
Con.Close()
MsgBox([Ô]Alteração Feita com Sucesso![Ô], MsgBoxStyle.Information, [Ô]Concluido[Ô])
Button2_Click(Nothing, Nothing)
Catch
MsgBox([Ô]Erro ao tentar alterar[Ô], MsgBoxStyle.Critical, [Ô]ERRO[Ô])
End Try
Se alguém enxergar algum erro me indica por favor
Agradeço;
Pessoal tentei uma nova forma de fazer update em meu access .mdb mas esta também não funcionou.
Neste novo caso aponta um erro. Veja se alguém me ajuda por favor :
Imports System.Data
Imports System.Data.OleDb
Public Class Form6
Dim cnnOLEDB As New OleDbConnection
Dim cmdOLEDB As New OleDbCommand
Dim cmdUpdate As New OleDbCommand
Dim strConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\databasegeral.mdb[Ô]
Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cnnOLEDB.ConnectionString = strConnectionString
cnnOLEDB.Open()
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cmdUpdate.CommandText = [Ô] UPDATE objetos SET text =[ô] [Ô] & TextBox1.Text & [Ô] [ô] WHERE objeto = [ô] form2button1 [ô] ; [Ô]
cmdUpdate.CommandType = CommandType.Text
cmdUpdate.Connection = cnnOLEDB
cmdUpdate.ExecuteNonQuery()
APONTA UM ERRO NESTA LINHA DIZENDO QUE TEM ERRO DE SINTAXE NA INSTRUÇÃO UPDATE
cmdUpdate.Dispose()
End Sub
Por favor se puderem me aponte qual o erro
Agradeço;
GILBERTOJW
Neste novo caso aponta um erro. Veja se alguém me ajuda por favor :
Imports System.Data
Imports System.Data.OleDb
Public Class Form6
Dim cnnOLEDB As New OleDbConnection
Dim cmdOLEDB As New OleDbCommand
Dim cmdUpdate As New OleDbCommand
Dim strConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\databasegeral.mdb[Ô]
Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cnnOLEDB.ConnectionString = strConnectionString
cnnOLEDB.Open()
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cmdUpdate.CommandText = [Ô] UPDATE objetos SET text =[ô] [Ô] & TextBox1.Text & [Ô] [ô] WHERE objeto = [ô] form2button1 [ô] ; [Ô]
cmdUpdate.CommandType = CommandType.Text
cmdUpdate.Connection = cnnOLEDB
cmdUpdate.ExecuteNonQuery()
APONTA UM ERRO NESTA LINHA DIZENDO QUE TEM ERRO DE SINTAXE NA INSTRUÇÃO UPDATE
cmdUpdate.Dispose()
End Sub
Por favor se puderem me aponte qual o erro
Agradeço;
GILBERTOJW
Vou explicar certas oisas que acontece por achar que algum nome não pode pertencer como campo de tabela.
São nomes do programa e do Access.Como é seu caso. CommandText = [Ô]UPDATE objetos SET [txt-color=#e80000]text[/txt-color]=[ô][Ô] & TextBox1.Text & [Ô][ô][Ô]
Este nome faz parte de referência do ACCESS então não criar um campo com este nome.
Quanto ao seu [txt-color=#e80000]UPDATE[/txt-color] ele não está muito correto para fazer alteração,pois se aceita-se o update mudaria todo o campo de todos
os registros da tabela com o mesmo nome da caixa de texto. Acredito que a sua tabela tem um indice e chave primária.
Então ficaria assim.
.CommandText = [Ô]UPDATE objetos SET textt=[ô][Ô] & TextBox1.Text & [Ô][ô] Where IdOjetos=[Ô] & txtCodObjetos.Text & [Ô][Ô]
Valeu.
São nomes do programa e do Access.Como é seu caso. CommandText = [Ô]UPDATE objetos SET [txt-color=#e80000]text[/txt-color]=[ô][Ô] & TextBox1.Text & [Ô][ô][Ô]
Este nome faz parte de referência do ACCESS então não criar um campo com este nome.
Quanto ao seu [txt-color=#e80000]UPDATE[/txt-color] ele não está muito correto para fazer alteração,pois se aceita-se o update mudaria todo o campo de todos
os registros da tabela com o mesmo nome da caixa de texto. Acredito que a sua tabela tem um indice e chave primária.
Então ficaria assim.
.CommandText = [Ô]UPDATE objetos SET textt=[ô][Ô] & TextBox1.Text & [Ô][ô] Where IdOjetos=[Ô] & txtCodObjetos.Text & [Ô][Ô]
Valeu.
Tópico encerrado , respostas não são mais permitidas