GRAVAR COM ADO
Boa tarde Pessoal
Estou começando a trocar Dao por ADO. Peguei um exemplo no site, mas o mesmo não está gravando no Banco. Poderiaam me ajudar?
Uso: VB 6, com Banco Access 2003
Rotina de Gravação:
Private Sub Command9_Click()
On Error GoTo trataerro
If Command9.Caption = [Ô]&Incluir[Ô] Then
rst.AddNew
clear_ctrls [ô] limpa as caixas de textos
Text1.SetFocus
Command9.Caption = [Ô]&Grava[Ô]
Exit Sub
End If
If Command9.Caption = [Ô]Grava[Ô] Then
grava_rec [ô] grava registros no BD
rst.Update
Command9.Caption = [Ô]&Inclui[Ô]
marca = rst.Bookmark
rst.Requery
rst.Bookmark = marca
load_rec [ô] preenche as caixas de textos do BD
MsgBox [Ô]Arquivo gravado com sucesso![Ô]
End If
Exit Sub
trataerro:
MsgBox [Ô]Ocorreu um erro no arquivo[Ô]
Resume
End Sub
Rotina Abertura Banco de Dados:
Private Sub Form_Load()
cnn.Open [Ô]Provider=Microsoft.jet.oledb.3.51;Data Source=C:Documents and SettingsBiblio.mdb;[Ô]
rst.CursorLocation = adUseClient
rst.Open [Ô]Select * from Authors[Ô], cnn, adOpenKeyset, adLockOptimistic, adCmdText
load_rec
End Sub
grato
Donizete
Estou começando a trocar Dao por ADO. Peguei um exemplo no site, mas o mesmo não está gravando no Banco. Poderiaam me ajudar?
Uso: VB 6, com Banco Access 2003
Rotina de Gravação:
Private Sub Command9_Click()
On Error GoTo trataerro
If Command9.Caption = [Ô]&Incluir[Ô] Then
rst.AddNew
clear_ctrls [ô] limpa as caixas de textos
Text1.SetFocus
Command9.Caption = [Ô]&Grava[Ô]
Exit Sub
End If
If Command9.Caption = [Ô]Grava[Ô] Then
grava_rec [ô] grava registros no BD
rst.Update
Command9.Caption = [Ô]&Inclui[Ô]
marca = rst.Bookmark
rst.Requery
rst.Bookmark = marca
load_rec [ô] preenche as caixas de textos do BD
MsgBox [Ô]Arquivo gravado com sucesso![Ô]
End If
Exit Sub
trataerro:
MsgBox [Ô]Ocorreu um erro no arquivo[Ô]
Resume
End Sub
Rotina Abertura Banco de Dados:
Private Sub Form_Load()
cnn.Open [Ô]Provider=Microsoft.jet.oledb.3.51;Data Source=C:Documents and SettingsBiblio.mdb;[Ô]
rst.CursorLocation = adUseClient
rst.Open [Ô]Select * from Authors[Ô], cnn, adOpenKeyset, adLockOptimistic, adCmdText
load_rec
End Sub
grato
Donizete
Bom companheiro eu faria as seguintes alteracoes:
na abertura abra assim:
rst.Open [Ô]Select * from Authors[Ô], cnn, adOpenStatic, adLockOptimistic
load_rec
utilizaria comandos sql nas movimentacoes de dados
sql =[Ô][Ô]
sql =[Ô] insert into nome_tabela set nomecampo=[ô] [Ô] & txtfields & [Ô][ô][Ô]
cnn.execute(sql)
experimenta...
na abertura abra assim:
rst.Open [Ô]Select * from Authors[Ô], cnn, adOpenStatic, adLockOptimistic
load_rec
utilizaria comandos sql nas movimentacoes de dados
sql =[Ô][Ô]
sql =[Ô] insert into nome_tabela set nomecampo=[ô] [Ô] & txtfields & [Ô][ô][Ô]
cnn.execute(sql)
experimenta...
Donizete este codigo tá meio confuso pra mim, sempre uso ADO da seguinte forma, vou colocar tudo (conexão e inserção do valor na tabela) num botão pra você ver melhor como funciona:
Private Sub Cmd_inserir_Click()
[ô]declara os objetos
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
[ô]abre a conexão
cnn.ConnectionString = [Ô]provider = microsoft.jet.oledb.4.0;[Ô] & _
[Ô]data Source = [Ô] & App.Path & [Ô]BD.mdb;[Ô]
cnn.CursorLocation = adUseClient
cnn.Open
[ô]insere o valor da textbox1 na tabela CLIENTES no campo NOME
With cmd
.ActiveConnection = cnn
.CommandType = adCmdText
.CommandText = [Ô]insert into CLIENTES (NOME) values ([ô][Ô] & Text1.Text & [Ô][ô]);[Ô]
.Execute
MsgBox ([Ô]Registro Efetuado[Ô])
End With
End Sub
Private Sub Cmd_inserir_Click()
[ô]declara os objetos
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
[ô]abre a conexão
cnn.ConnectionString = [Ô]provider = microsoft.jet.oledb.4.0;[Ô] & _
[Ô]data Source = [Ô] & App.Path & [Ô]BD.mdb;[Ô]
cnn.CursorLocation = adUseClient
cnn.Open
[ô]insere o valor da textbox1 na tabela CLIENTES no campo NOME
With cmd
.ActiveConnection = cnn
.CommandType = adCmdText
.CommandText = [Ô]insert into CLIENTES (NOME) values ([ô][Ô] & Text1.Text & [Ô][ô]);[Ô]
.Execute
MsgBox ([Ô]Registro Efetuado[Ô])
End With
End Sub
Donizete eo codigo q indica os campos da ligado com as texts como vc fez?
assim
Private Sub cmdsalvar_Click()
[ô]rs.Fields(0) = [Ô][Ô] & txtcod.Text
[ô]rs.Fields(1) = [Ô][Ô] & txtcodbarra.Text
rs.Fields(2) = [Ô][Ô] & txtdesc.Text
rs.Fields(3) = [Ô][Ô] & txtvcusto.Text
rs.Fields(4) = [Ô][Ô] & txtmargem.Text
rs.Fields(5) = [Ô][Ô] & txtvalorvenda.Text
rs.Fields(6) = [Ô][Ô] & txtestoqueatual.Text
rs.Fields(7) = [Ô][Ô] & txtestoqueminimo.Text
rs.Update
rs.MoveLast
[ô]conta total de registros
StatusBar1.Panels(2).Text = rs.RecordCount
End Sub
assim
Private Sub cmdsalvar_Click()
[ô]rs.Fields(0) = [Ô][Ô] & txtcod.Text
[ô]rs.Fields(1) = [Ô][Ô] & txtcodbarra.Text
rs.Fields(2) = [Ô][Ô] & txtdesc.Text
rs.Fields(3) = [Ô][Ô] & txtvcusto.Text
rs.Fields(4) = [Ô][Ô] & txtmargem.Text
rs.Fields(5) = [Ô][Ô] & txtvalorvenda.Text
rs.Fields(6) = [Ô][Ô] & txtestoqueatual.Text
rs.Fields(7) = [Ô][Ô] & txtestoqueminimo.Text
rs.Update
rs.MoveLast
[ô]conta total de registros
StatusBar1.Panels(2).Text = rs.RecordCount
End Sub
Boa noite Pessoal!
Obrigado pelo apoio.
Testei o exemplo do Jilney, e funcionou legal, com um objeto command.
Paulo e Patoloco, grato pela ajuda.
No meu exemplo apenas para conhecimento, não estava gravando pois a linha [Ô]command9.caption = [Ô]Grava[Ô] faltou o [Ô]&[Ô], conforme consta nas linhas acima
abs
Obrigado pelo apoio.
Testei o exemplo do Jilney, e funcionou legal, com um objeto command.
Paulo e Patoloco, grato pela ajuda.
No meu exemplo apenas para conhecimento, não estava gravando pois a linha [Ô]command9.caption = [Ô]Grava[Ô] faltou o [Ô]&[Ô], conforme consta nas linhas acima
abs
Tópico encerrado , respostas não são mais permitidas