COLOCAR DADOS NO ACCESS .MDB VIA CODIGO

GILBERTOJW 12/12/2012 14:12:22
#415863
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;
OMAR2011 12/12/2012 14:39:34
#415864
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.
GILBERTOJW 12/12/2012 16:09:55
#415870
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;
OMAR2011 12/12/2012 17:08:49
#415874
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/
GILBERTOJW 12/12/2012 17:31:05
#415876
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;
GILBERTOJW 12/12/2012 17:50:37
#415877
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;
OMAR2011 12/12/2012 22:05:44
#415891
Estou fazendo um projeto simples para verificar como faz apesar de
existir várias formas de fazer.
Espere um pouco.
valeu
OMAR2011 12/12/2012 23:10:58
#415893
Resposta escolhida
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.
GILBERTOJW 13/12/2012 11:38:53
#415909
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;
GILBERTOJW 13/12/2012 17:46:43
#415932
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
OMAR2011 13/12/2012 17:51:35
#415934
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.
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas