USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Banco dados ADODB.Recordset
Edivaldo
não registrado
ENUNCIADA !
Postada em 13/07/2004 14:33 hs   
Dim DB_Principal_RecordSet As New ADODB.Recordset
Nunca usei essa forma de trabalhar com banco de dados ACCESS, sempre usei assim: Dim t_dados2 As Database.
Bom o problema é que estou dando manutenção em sistema pronto e qdo ele chama essa função: DB_Principal_RecordSet.Close da o seguinte erro:
"Class does not support Automation or does not support expected interface."
 
Esse mesmo erro não dá em uma máquina com Windows XP... o erro esta dando em máquina com Win98
 
 
   
Alan
Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 13/07/2004 14:47 hs            
Edivaldo
 
Este erro esta ocorrendo pois no meio do codigo, não foi aberto nenhuma tabela no BD. Pois não havia nenhuma consulta aberta.
 
So comentei
 
Alan
   
Wes
BARUERI
SP - BRASIL
Postada em 15/07/2004 13:09 hs            
O que está acontecendo é que este programa foi desenvolvido em wind xp ou seja como o vb tem um grande defeito de rodar somente em plataforma se o programa foi desenvolvido em wind xp ele nunca vai rodar legal em 98 ele poderá até desconfigurar a máquina, o que eu quero dizer é que você deve fazer a manutenção desde programa em wind xp pois o 98 não suporta a interface do xp..
 
O Senhor é o meu Pastor e nada me Faltará

weslei
     
THECRAZY
Pontos: 2843
BRASÍLIA
DF - BRASIL
ENUNCIADA !
Postada em 15/07/2004 13:20 hs            
Olá !!
Um RecordSet, não é um DB, é uma Tabela de banco de dados, em ADO não Existe o objeto DataBase, em ADO, não existe hierarquia de DataBase -> Table. Você Criou um recordset, Primeiro abra-o, depois feche-o
 
DB_Principal_RecordSet.Open "SELECT * FROM TABELA",Conexao,2,1
DB_Principal_RecordSet.Close

  Eu sou o alfa e o ômega, o princípio e o fim, diz o Senhor, que é, e que era, e que há de vir, o Todo Poderoso. (Ap 1.8)
   
Keyo
Pontos: 2843
CURITIBA
PR - BRASIL
Postada em 15/07/2004 16:00 hs            
De repente eu tenho quase certeza que se vc rodar no windows 98 a ultima versão do mdac vai resolver,pois vc deve estar usando no xp uma referencia ao ADO superior a versao que se encontra atualmente no win98,por isso que a classe não suporta a interface,rode o mdac 2.8 no win 98 que seus problemas vão acabar.
     
Mateus
AMADORA
PT - PORTUGAL
Postada em 16/07/2004 07:53 hs            
O que está a acontecer é que você está habituado a trabalhar em DAO e agora está a "tentar" trabalhar com ADO.
Estes programas deverão funcionar em qualquer plataforma desde que seja actualizados os respecticos MDACs.
 
Como parece que realmente está com algumas dificuldades, aí vai um exemplo de como trabalhar com ADO(pode ser que ajude):
 

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

 

 

 João Mateus

     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página