GRAVAR COM ADO

DONIZETE 01/08/2009 19:02:26
#318561
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


PAULOOLIVEIRA 01/08/2009 20:02:06
#318562
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...
JILNEY 01/08/2009 20:04:43
#318563
Resposta escolhida
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
MASTER2020 01/08/2009 20:42:30
#318566
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
DONIZETE 04/08/2009 23:24:02
#318946
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

Tópico encerrado , respostas não são mais permitidas