ADO ...
Bom eu to querendo cadastrar mas nao vai...!!! ai vai o que to fazendo...
...................................................................................................................
Dim db As ADODB.Connection
Dim rs_banco As ADODB.Recordset
Sub Main() 'SubFunção Principal
Set db = New ADODB.Connection 'Dá valor á variável como nova Conexão ADO
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\banco.mdb;Persist Security Info=False" 'Acessa Banco de Dados Pelas Palavras de Conexão.. o Jet do Office, o Caminho do banco de dados enfim
End Sub
Private Sub cmdcad_Click()
Set rs_banco = New ADODB.Recordset
rs_banco.LockType = adLockOptimistic
rs_banco.Open "Select * from nome", db, adOpenDynamic
rs_banco.AddNew
rs_banco!nome = txtnome
rs_banco!end = txtend
rs_banco!tel = txttel
rs_banco!sexo = txtsexo
rs_banco!cidade = txtcidade
rs_banco.Update
MsgBox "Fufou"
End Sub
.............................................................................................................
Isso é o que eu to fazendo e ele diz assim :
RUNTIME ERROR '3709'
THE CONNECTION CANNOT BE USED TO PERFORM THIS OPERATIONS. IT IS EITHER CLOSED OR INVALID IN THIS CONTEXT.
Se puderem me ajudar fico grato..!!!1 agradeço desde ja.!!! Obrigado...
...................................................................................................................
Dim db As ADODB.Connection
Dim rs_banco As ADODB.Recordset
Sub Main() 'SubFunção Principal
Set db = New ADODB.Connection 'Dá valor á variável como nova Conexão ADO
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\banco.mdb;Persist Security Info=False" 'Acessa Banco de Dados Pelas Palavras de Conexão.. o Jet do Office, o Caminho do banco de dados enfim
End Sub
Private Sub cmdcad_Click()
Set rs_banco = New ADODB.Recordset
rs_banco.LockType = adLockOptimistic
rs_banco.Open "Select * from nome", db, adOpenDynamic
rs_banco.AddNew
rs_banco!nome = txtnome
rs_banco!end = txtend
rs_banco!tel = txttel
rs_banco!sexo = txtsexo
rs_banco!cidade = txtcidade
rs_banco.Update
MsgBox "Fufou"
End Sub
.............................................................................................................
Isso é o que eu to fazendo e ele diz assim :
RUNTIME ERROR '3709'
THE CONNECTION CANNOT BE USED TO PERFORM THIS OPERATIONS. IT IS EITHER CLOSED OR INVALID IN THIS CONTEXT.
Se puderem me ajudar fico grato..!!!1 agradeço desde ja.!!! Obrigado...
Onde exatamente ocorre o erro. Parece ser no momento da conexão.
Você verificou se a conexão está ocorrendo normalmente? Faça o seguinte teste:
msgbox rs_banco.state
'0 - Não conectou
'1 - Conectou
E tente abrir o recordset de maneira estática:
rs.Open "Select...",db,adOpenStatic,adLockOptimistic
Você verificou se a conexão está ocorrendo normalmente? Faça o seguinte teste:
msgbox rs_banco.state
'0 - Não conectou
'1 - Conectou
E tente abrir o recordset de maneira estática:
rs.Open "Select...",db,adOpenStatic,adLockOptimistic
o achologo aqui acha que ou você deveria setar o datafield dos textbox com o nome do campo e o datasource dos textbox com o rs e então addnew e depois update se não utilizar um insert
Private Sub Form_load_Click()
Public db as ADODB.Connection
Public RS_Banco as ADODB.Recordset
Set db = new ADODB.Connection
Set rs_banco = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\banco.mdb;Persist Security Info=False"
rs_banco.Open "Select * from nome", db, adOpenStatic, adOpenDynamic
Set txtnome.datasource = rs_banco
Set txtend.datasource = rs_banco
e assim vai ate colocar em todas as texts(se utilizar array com as texts fica mais facil)
depois
txtnome.datafield = "Nome"
txtend.datafield = "End"
e assim vai ate definir o field para todas as texts
End Sub
Private Sub Incluir_click()
rs_banco.addnew
End Sub
Private Sub Salvar_click
rs_banco.update
End Sub
Ou então como falei utilizar um insert
Private Sub Form_load_Click()
Public db as ADODB.Connection
Public RS_Banco as ADODB.Recordset
Set db = new ADODB.Connection
Set rs_banco = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\banco.mdb;Persist Security Info=False"
rs_banco.Open "Select * from nome", db, adOpenStatic, adOpenDynamic
Set txtnome.datasource = rs_banco
Set txtend.datasource = rs_banco
e assim vai ate colocar em todas as texts(se utilizar array com as texts fica mais facil)
depois
txtnome.datafield = "Nome"
txtend.datafield = "End"
e assim vai ate definir o field para todas as texts
End Sub
Private Sub Incluir_click()
rs_banco.addnew
End Sub
Private Sub Salvar_click
rs_banco.update
End Sub
Ou então como falei utilizar um insert
bom pessoal muito obrigado pela ajuda mas, eu to fazendo em sql fica mais facil... mais isso aqui ta me dando um show que vcs nem imaginam.!!!!
Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Sub Main() 'SubFunção Principal
Set db = New ADODB.Connection 'Dá valor á variável como nova Conexão ADO
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\banco.mdb;Persist Security Info=False" 'Acessa Banco de Dados Pelas Palavras de Conexão.. o Jet do Office, o Caminho do banco de dados enfim
End Sub
Private Sub cmdcad_Click()
'Set rs_banco = CreateObject("ADODB.Recordset")
'With rs_banco
Set rs = ADODB.Recordset <----- RECORD
db.Execute ("insert into nome (nome, end , tel , sexo , cidade)values =('" & txtnome.Text & "', '" & txtend.Text & "','" & txttel.Text & "','" & txtsexo.Text & "', '" & txtcidade.Text & "'")
MsgBox "Fufou"
'End With
End Sub
e ele fala que o RECORD é um metodo invalido ...!!!
se puderem me ajudar fico grato..!!!1
Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Sub Main() 'SubFunção Principal
Set db = New ADODB.Connection 'Dá valor á variável como nova Conexão ADO
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\banco.mdb;Persist Security Info=False" 'Acessa Banco de Dados Pelas Palavras de Conexão.. o Jet do Office, o Caminho do banco de dados enfim
End Sub
Private Sub cmdcad_Click()
'Set rs_banco = CreateObject("ADODB.Recordset")
'With rs_banco
Set rs = ADODB.Recordset <----- RECORD
db.Execute ("insert into nome (nome, end , tel , sexo , cidade)values =('" & txtnome.Text & "', '" & txtend.Text & "','" & txttel.Text & "','" & txtsexo.Text & "', '" & txtcidade.Text & "'")
MsgBox "Fufou"
'End With
End Sub
e ele fala que o RECORD é um metodo invalido ...!!!
se puderem me ajudar fico grato..!!!1
Você já tentou incluir por meio de um "Insert Into" ? Só pra gente saber se tá conectando...
agenlus na sua rotina você colocou
Set rs = ADODB.Recordset
coloque
Set rs = New ADODB.recordset
não manjo muito do insert into, mas você colocou os nomes dos campos depois deu um espação e depois a virgula, coloque o nome do campo depois a virgula e depois o espaço do mesmo jeito para a descrição dos campos ( textcampo.text & ", ") (e não " , ")
db.Execute ("insert into nome (nome, end, tel, sexo, cidade)values =('" & txtnome.Text & ", '" & txtend.Text & ",'" & txttel.Text & ",'" & txtsexo.Text & ", '" & txtcidade.Text & "'")
outro declaro Public e não DIm (para que as declarações estejam visiveis em qualquer comando do seu projeto).
Do jeito que passei não funcionou ou você não quer assim???
Set rs = ADODB.Recordset
coloque
Set rs = New ADODB.recordset
não manjo muito do insert into, mas você colocou os nomes dos campos depois deu um espação e depois a virgula, coloque o nome do campo depois a virgula e depois o espaço do mesmo jeito para a descrição dos campos ( textcampo.text & ", ") (e não " , ")
db.Execute ("insert into nome (nome, end, tel, sexo, cidade)values =('" & txtnome.Text & ", '" & txtend.Text & ",'" & txttel.Text & ",'" & txtsexo.Text & ", '" & txtcidade.Text & "'")
outro declaro Public e não DIm (para que as declarações estejam visiveis em qualquer comando do seu projeto).
Do jeito que passei não funcionou ou você não quer assim???
Nesta linha:
Set rs = ADODB.Recordset <----- RECORD
Você pretende que <----- RECORD seja um comentário ?
é que parece-me(não juro!) o vb não reconhece o "<" como tal mas sim o " ' ".
Bom, independentemente disso, aà vai um exemplo de como trabalhar:
ADO - Exemplo de como trabalhar com Dados
Public Function ConexaoDados() As Connection
base = PstrCamDados & "\mvdoctab.mdb"
Set dbDados = New ADODB.Connection
With dbDados
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Data Source") = base
.Properties("Jet OLEDB:Database Password") = "password"
.Open
End With
End Function
Public Function MostrarTodos() As ADODB.Recordset
Set rstMovimentos = New ADODB.Recordset
strSql = "SELECT * FROM tMovimentos"
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Set MostrarTodos = rstMovimentos
Set rstMovimentos = Nothing
End Function
Public Sub Inserir()
On Error Resume Next
strSql = "INSERT INTO tMovimentos (id_movimento,"
strSql = strSql & " codigo,mov_tipo,mov_tipo2,mov_data,ent_num_contr,"
strSql = strSql & " ent_num_ei,ent_num,mov_docref,tipo_pag,not_venda,"
strSql = strSql & " data,cod_util,transfer)VALUES('" & id & "',"
strSql = strSql & " " & cod & " ,'" & movt & "','" & movd & "','" & dat & "'," & entidnc & ","
strSql = strSql & " " & entidne & ", " & entid & ",'" & ref & "','" & tp & "','" & nv & "',"
strSql = strSql & " '" & dat & "','" & ut & "', '" & transf & "')"
dbDados.Execute strSql
Select Case Err.Number
Case 0:
MsgBox "Registo incluÃdo.", vbInformation, "Atenção"
Case -2147217864
MsgBox "Registo excluÃdo por outro utilizador. As alterações feitas não serão salvas.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. O Registo não pode ser incluÃdo. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O Registo não pode ser incluÃdo." + vbCrLf + Err.Description
End Select
End Sub
Public Function ObterCodigo() As String
Dim strCod As String, intMaxCod As Integer
Set rstMovimentos = New ADODB.Recordset
rstMovimentos.CursorLocation = adUseServer
rstMovimentos.Open "SELECT max(id_movimento)from tMovimentos where mid(tmovimentos.id_movimento,1,4)= '" & inicio & "'", dbDados, adOpenKeyset, adLockReadOnly, adCmdText
If IsNull(rstMovimentos.Fields(0)) Then
ant = inicio & "000000"
ObterCodigo = ant + 1
Else
ant = rstMovimentos.Fields(0).Value
ObterCodigo = ant + 1
End If
Set rstMovimentos = Nothing
End Function
Public Sub Alterar()
On Error Resume Next
strSql = "UPDATE tMovimentos SET tMovimentos.mov_tipo='" & movt & "',"
strSql = strSql & "tMovimentos.mov_tipo2='" & movd & "',"
strSql = strSql & "tMovimentos.mov_data = '" & CVDate(dat) & "',"
strSql = strSql & "tMovimentos.ent_num_contr=" & entidnc & ",tMovimentos.ent_num_ei=" & entidne & ","
strSql = strSql & "tMovimentos.ent_num=" & entid & ",tMovimentos.mov_docref ='" & ref & "',"
strSql = strSql & "tMovimentos.tipo_pag='" & tp & "',tMovimentos.not_venda=" & nv & ","
strSql = strSql & "tMovimentos.data= '" & CVDate(datr) & "',"
strSql = strSql & "tMovimentos.cod_util='" & ut & "',"
strSql = strSql & "tMovimentos.transfer='" & transf & "' "
strSql = strSql & "WHERE tMovimentos.id_movimento= '" & id & "' and tMovimentos.codigo=" & cod & " "
dbDados.Execute strSql
Select Case Err.Number
Case 0
MsgBox "Alteração concluÃda.", vbInformation, "Atenção"
Case -2147217864
MsgBox "Registo excluÃdo por outro utilizador. As alterações feitas não serão salvas.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. As alterações não foram salvas. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O Registo não pode ser alterado." + vbCrLf + Err.Description
End Select
End Sub
Public Function Excluir()
strSql = "DELETE FROM tMovimentos "
strSql = strSql & "WHERE tMOVIMENTOS.id_movimento= '" & id & "' and tMovimentos.codigo=" & cod & ""
On Error Resume Next
dbDados.Execute strSql
Select Case Err.Number
Case 0:
MsgBox "Registo ExcluÃdo.", vbInformation, "Atenção"
Case -2147217864
MsgBox "Registo já excluÃdo por outro utilizador.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. Exclusão não permitida. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O Registo não pode ser excluÃdo." + vbCrLf + Err.Description, "Atenção"
End Select
End Function
Public Function ConfirmarRegisto(ByVal strIdentificativo As String, ByVal strCodigo As Long) As Boolean
Set rstMovimentos = New ADODB.Recordset
strSql = "SELECT id_movimento, Codigo FROM tMovimentos"
strSql = strSql & " WHERE tMOVIMENTOS.id_movimento ='" & strIdentificativo & "'"
strSql = strSql & " and tMOVIMENTOS.Codigo = " & strCodigo & ""
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
If Not rstMovimentos.EOF Then
ConfirmarRegisto = True
Else
ConfirmarRegisto = False
End If
rstMovimentos.Close
Set rstMovimentos = Nothing
End Function
Public Function Consultar(ByVal strSql As String) As ADODB.Recordset
Set rstMovimentos = New ADODB.Recordset
If strSql = Null Then
strSql = ""
End If
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Set Consultar = rstMovimentos
Set rstMovimentos = Nothing
End Function
Public Function MostrarTodosDetalhe() As Recordset
Set rstMovimentos = New ADODB.Recordset
strSqlD = "SELECT * FROM tMovimentosdet"
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSqlD, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Set MostrarTodosDetalhe = rstMovimentos
Set rstMovimentos = Nothing
End Function
Public Sub ExcluirTodosDetalhe()
strSqlD = "DELETE FROM tMovimentosdet "
strSqlD = strSqlD & "WHERE tMOVIMENTOSdet.id_movimento= '" & id & "' and tMovimentosdet.codigo=" & cod & ""
On Error Resume Next
dbDados.Execute strSqlD
Select Case Err.Number
Case 0:
MsgBox "Registo ExcluÃdo.", vbInformation, "Atenção"
Case -2147217864
MsgBox "Registo já excluÃdo por outro utilizador.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. Exclusão não permitstrIdentificativoa. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O Registo não pode ser excluÃdo." + vbCrLf + Err.Description, "Atenção"
End Select
End Sub
Public Sub ExcluirRegistoDetalhe()
On Error Resume Next
strSqlD = "DELETE FROM TMovimentosDet WHERE codigo = " & cod & " AND id_movimento = '" & id & "'"
dbDados.Execute strSqlD
Select Case Err.Number
Case 0:
Case -2147217864
MsgBox "Registo já excluÃdo por outro utilizador.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. Exclusão não permitida. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O registo não pode ser excluÃdo." + vbCrLf + Err.Description, "Atenção"
End Select
End Sub
Public Sub InserirDetalhe()
On Error Resume Next
strSqlD = "INSERT INTO TMovimentosDet (mov_tipo, art_codig, serie_id, serie_ini, serie_fim, codigo, id_movimento, serie_contad,"
strSqlD = strSqlD & "art_quant, art_valunit, valor ) VALUES ("
strSqlD = strSqlD & "'" & movt & "', '" & art & "','" & ser
strSqlD = strSqlD & "', " & ini & ", " & fim & ", " & cod
strSqlD = strSqlD & " , '" & id & "', " & contad
strSqlD = strSqlD & ", " & quant & ", " & valunit & ", " & val & ")"
dbDados.Execute strSqlD
Select Case Err.Number
Case 0
Exit Sub
Case -2147217864
MsgBox "Registo excluÃdo por outro utilizador. As alterações feitas não serão salvas.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. O registo não pode ser incluÃdo. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O registo não pode ser incluÃdo." + vbCrLf + Err.Description
End Select
End Sub
Public Function ConsultarDetalhe(ByVal strSqlD As String) As Recordset
Set rstMovimentos = New ADODB.Recordset
If strSql = Null Then
strSql = ""
End If
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql & strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Set ConsultarDetalhe = rstMovimentos
Set rstMovimentos = Nothing
End Function
Set rs = ADODB.Recordset <----- RECORD
Você pretende que <----- RECORD seja um comentário ?
é que parece-me(não juro!) o vb não reconhece o "<" como tal mas sim o " ' ".
Bom, independentemente disso, aà vai um exemplo de como trabalhar:
ADO - Exemplo de como trabalhar com Dados
Public Function ConexaoDados() As Connection
base = PstrCamDados & "\mvdoctab.mdb"
Set dbDados = New ADODB.Connection
With dbDados
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Data Source") = base
.Properties("Jet OLEDB:Database Password") = "password"
.Open
End With
End Function
Public Function MostrarTodos() As ADODB.Recordset
Set rstMovimentos = New ADODB.Recordset
strSql = "SELECT * FROM tMovimentos"
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Set MostrarTodos = rstMovimentos
Set rstMovimentos = Nothing
End Function
Public Sub Inserir()
On Error Resume Next
strSql = "INSERT INTO tMovimentos (id_movimento,"
strSql = strSql & " codigo,mov_tipo,mov_tipo2,mov_data,ent_num_contr,"
strSql = strSql & " ent_num_ei,ent_num,mov_docref,tipo_pag,not_venda,"
strSql = strSql & " data,cod_util,transfer)VALUES('" & id & "',"
strSql = strSql & " " & cod & " ,'" & movt & "','" & movd & "','" & dat & "'," & entidnc & ","
strSql = strSql & " " & entidne & ", " & entid & ",'" & ref & "','" & tp & "','" & nv & "',"
strSql = strSql & " '" & dat & "','" & ut & "', '" & transf & "')"
dbDados.Execute strSql
Select Case Err.Number
Case 0:
MsgBox "Registo incluÃdo.", vbInformation, "Atenção"
Case -2147217864
MsgBox "Registo excluÃdo por outro utilizador. As alterações feitas não serão salvas.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. O Registo não pode ser incluÃdo. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O Registo não pode ser incluÃdo." + vbCrLf + Err.Description
End Select
End Sub
Public Function ObterCodigo() As String
Dim strCod As String, intMaxCod As Integer
Set rstMovimentos = New ADODB.Recordset
rstMovimentos.CursorLocation = adUseServer
rstMovimentos.Open "SELECT max(id_movimento)from tMovimentos where mid(tmovimentos.id_movimento,1,4)= '" & inicio & "'", dbDados, adOpenKeyset, adLockReadOnly, adCmdText
If IsNull(rstMovimentos.Fields(0)) Then
ant = inicio & "000000"
ObterCodigo = ant + 1
Else
ant = rstMovimentos.Fields(0).Value
ObterCodigo = ant + 1
End If
Set rstMovimentos = Nothing
End Function
Public Sub Alterar()
On Error Resume Next
strSql = "UPDATE tMovimentos SET tMovimentos.mov_tipo='" & movt & "',"
strSql = strSql & "tMovimentos.mov_tipo2='" & movd & "',"
strSql = strSql & "tMovimentos.mov_data = '" & CVDate(dat) & "',"
strSql = strSql & "tMovimentos.ent_num_contr=" & entidnc & ",tMovimentos.ent_num_ei=" & entidne & ","
strSql = strSql & "tMovimentos.ent_num=" & entid & ",tMovimentos.mov_docref ='" & ref & "',"
strSql = strSql & "tMovimentos.tipo_pag='" & tp & "',tMovimentos.not_venda=" & nv & ","
strSql = strSql & "tMovimentos.data= '" & CVDate(datr) & "',"
strSql = strSql & "tMovimentos.cod_util='" & ut & "',"
strSql = strSql & "tMovimentos.transfer='" & transf & "' "
strSql = strSql & "WHERE tMovimentos.id_movimento= '" & id & "' and tMovimentos.codigo=" & cod & " "
dbDados.Execute strSql
Select Case Err.Number
Case 0
MsgBox "Alteração concluÃda.", vbInformation, "Atenção"
Case -2147217864
MsgBox "Registo excluÃdo por outro utilizador. As alterações feitas não serão salvas.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. As alterações não foram salvas. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O Registo não pode ser alterado." + vbCrLf + Err.Description
End Select
End Sub
Public Function Excluir()
strSql = "DELETE FROM tMovimentos "
strSql = strSql & "WHERE tMOVIMENTOS.id_movimento= '" & id & "' and tMovimentos.codigo=" & cod & ""
On Error Resume Next
dbDados.Execute strSql
Select Case Err.Number
Case 0:
MsgBox "Registo ExcluÃdo.", vbInformation, "Atenção"
Case -2147217864
MsgBox "Registo já excluÃdo por outro utilizador.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. Exclusão não permitida. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O Registo não pode ser excluÃdo." + vbCrLf + Err.Description, "Atenção"
End Select
End Function
Public Function ConfirmarRegisto(ByVal strIdentificativo As String, ByVal strCodigo As Long) As Boolean
Set rstMovimentos = New ADODB.Recordset
strSql = "SELECT id_movimento, Codigo FROM tMovimentos"
strSql = strSql & " WHERE tMOVIMENTOS.id_movimento ='" & strIdentificativo & "'"
strSql = strSql & " and tMOVIMENTOS.Codigo = " & strCodigo & ""
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
If Not rstMovimentos.EOF Then
ConfirmarRegisto = True
Else
ConfirmarRegisto = False
End If
rstMovimentos.Close
Set rstMovimentos = Nothing
End Function
Public Function Consultar(ByVal strSql As String) As ADODB.Recordset
Set rstMovimentos = New ADODB.Recordset
If strSql = Null Then
strSql = ""
End If
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Set Consultar = rstMovimentos
Set rstMovimentos = Nothing
End Function
Public Function MostrarTodosDetalhe() As Recordset
Set rstMovimentos = New ADODB.Recordset
strSqlD = "SELECT * FROM tMovimentosdet"
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSqlD, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Set MostrarTodosDetalhe = rstMovimentos
Set rstMovimentos = Nothing
End Function
Public Sub ExcluirTodosDetalhe()
strSqlD = "DELETE FROM tMovimentosdet "
strSqlD = strSqlD & "WHERE tMOVIMENTOSdet.id_movimento= '" & id & "' and tMovimentosdet.codigo=" & cod & ""
On Error Resume Next
dbDados.Execute strSqlD
Select Case Err.Number
Case 0:
MsgBox "Registo ExcluÃdo.", vbInformation, "Atenção"
Case -2147217864
MsgBox "Registo já excluÃdo por outro utilizador.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. Exclusão não permitstrIdentificativoa. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O Registo não pode ser excluÃdo." + vbCrLf + Err.Description, "Atenção"
End Select
End Sub
Public Sub ExcluirRegistoDetalhe()
On Error Resume Next
strSqlD = "DELETE FROM TMovimentosDet WHERE codigo = " & cod & " AND id_movimento = '" & id & "'"
dbDados.Execute strSqlD
Select Case Err.Number
Case 0:
Case -2147217864
MsgBox "Registo já excluÃdo por outro utilizador.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. Exclusão não permitida. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O registo não pode ser excluÃdo." + vbCrLf + Err.Description, "Atenção"
End Select
End Sub
Public Sub InserirDetalhe()
On Error Resume Next
strSqlD = "INSERT INTO TMovimentosDet (mov_tipo, art_codig, serie_id, serie_ini, serie_fim, codigo, id_movimento, serie_contad,"
strSqlD = strSqlD & "art_quant, art_valunit, valor ) VALUES ("
strSqlD = strSqlD & "'" & movt & "', '" & art & "','" & ser
strSqlD = strSqlD & "', " & ini & ", " & fim & ", " & cod
strSqlD = strSqlD & " , '" & id & "', " & contad
strSqlD = strSqlD & ", " & quant & ", " & valunit & ", " & val & ")"
dbDados.Execute strSqlD
Select Case Err.Number
Case 0
Exit Sub
Case -2147217864
MsgBox "Registo excluÃdo por outro utilizador. As alterações feitas não serão salvas.", vbInformation, "Atenção"
Case -2147467259
MsgBox "Registo bloqueado por outro utilizador. O registo não pode ser incluÃdo. Tente mais tarde." & vbCr, vbExclamation, "Atenção"
Case Else
MsgBox "O registo não pode ser incluÃdo." + vbCrLf + Err.Description
End Select
End Sub
Public Function ConsultarDetalhe(ByVal strSqlD As String) As Recordset
Set rstMovimentos = New ADODB.Recordset
If strSql = Null Then
strSql = ""
End If
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql & strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Set ConsultarDetalhe = rstMovimentos
Set rstMovimentos = Nothing
End Function
bom pessoal valeu pela ajuda.. vou ver aqui se copnsego..!! william... me desculpe.!1 mais eu tava fazendo errado..!!1...!!! ... mas muito obrigado assim mesmo.. me ajudou muito..!!!! e valeu joão..!!!! ... a cara quando eu coloquei o "<" la foi indicando o prolbre que tava dando.!1 ele mantia selecionado... nao era comentario nao... heheheheh .... mas obrigado do memso jeito ........bom depois eu posto mais aqui se eu tiver alguma duvida..!!!! ,... obrigadao.!!1 fui
Bom Pessoal Olha eu qui anovamente.!!!! João gostaria de saber como vc definiu as declarações se foi no form ou em um modulo.!!! gostaria que vc desse um exenplo .. dependendo de como vc fez..!!!! ... do exeplo que vc postou aqui...!!! bom se alguem souber .. e poder me ajudar.... agradeço... muito obrigado..!!!! .... Fui;...
Todas as minhas declarações sobre variáveis a utilizar durante todo o programa são feitas num módulo .bas por acaso chamado sempre "VARIAVEIS_GLOBAIS".
O caso que lhe dei foi um exemplo que elaborei, por acaso baseado numa antiga aplicação onde trabalhava com classes, mas aqui vai um outro exemplo de descrição de varáveis, por acaso em DAO, que ainda hoje utlizo em access, mas que serve perfeitamente como exemplo:
Option Explicit
'Variáveis Globais
'Local dos Ficheiros
Public PstrCamDados As String
Public PstrCamFotos As String
'Caminho para a(s) Base(s) de Dados
Public strdb As Variant
'Caminho para o(s) Ficheiro(s) de Texto
Public strfich As Variant
'Base(s) de Dados
Public dbs As Database
'Areas de trabalho
Public wsp As Workspace
'Recordsets
Public rst As Recordset
Public rst1 As Recordset
'Tabelas
Public tdf As TableDef
'Querys
Public q As QueryDef
'SQLs
Public strSQL As String
Public strSQL1 As String
'Relatórios
Public rep As Report
Public stDocName As String
'Diversas
Public compa As String
Public recib As String
Public assoc As Long
Public agr As Byte
Public pag As Byte
Public nid As Long
Public strArquivo As String
Public strLinha As String
Public datai As Date
Public dataf As Date
Public I As Integer
Public inic As Variant
Public nome As Integer
Public num As Integer
Public cwhere As String
Public cwhere1 As String
Public cwhere0 As String
Public lmax As Long
Public lok As Long
Public ant As Long
Public act As Long
Public nor As String
Public sel As String
Public stLinkCriteria As String
O caso que lhe dei foi um exemplo que elaborei, por acaso baseado numa antiga aplicação onde trabalhava com classes, mas aqui vai um outro exemplo de descrição de varáveis, por acaso em DAO, que ainda hoje utlizo em access, mas que serve perfeitamente como exemplo:
Option Explicit
'Variáveis Globais
'Local dos Ficheiros
Public PstrCamDados As String
Public PstrCamFotos As String
'Caminho para a(s) Base(s) de Dados
Public strdb As Variant
'Caminho para o(s) Ficheiro(s) de Texto
Public strfich As Variant
'Base(s) de Dados
Public dbs As Database
'Areas de trabalho
Public wsp As Workspace
'Recordsets
Public rst As Recordset
Public rst1 As Recordset
'Tabelas
Public tdf As TableDef
'Querys
Public q As QueryDef
'SQLs
Public strSQL As String
Public strSQL1 As String
'Relatórios
Public rep As Report
Public stDocName As String
'Diversas
Public compa As String
Public recib As String
Public assoc As Long
Public agr As Byte
Public pag As Byte
Public nid As Long
Public strArquivo As String
Public strLinha As String
Public datai As Date
Public dataf As Date
Public I As Integer
Public inic As Variant
Public nome As Integer
Public num As Integer
Public cwhere As String
Public cwhere1 As String
Public cwhere0 As String
Public lmax As Long
Public lok As Long
Public ant As Long
Public act As Long
Public nor As String
Public sel As String
Public stLinkCriteria As String
Obrigadao João Mateus... eu consegui fazer rodar uma aprte do programa...!!! bom agora eu to em duvida a uma coisa..!!!! em dao pra pular a linha de uma msgbox é "" .. & Chr(13) & .."" ... certo?..... eu gostaria de saber como faço isso em ADO..!!! obrigadao fui..!!!!
Tópico encerrado , respostas não são mais permitidas