VB6 X ACCESS 2010 - ALGUMAS DUVIDAS
Meus amigos, alguem tem algum exemplo de um simples [txt-color=#0000f0]cadastro via ADO[/txt-color] que se utiliza VB6 e Access 2010 ?
é que tenho um sistema antigo que ainda utiliza o MDB do Access 97, logo queria migrar para Access 2010 ou 2007.
Pergunta:
1. Se sistema feito projeto em VB6 com banco de dados Access 2010 , o usuário final é preciso ter o Microsoft Access 2010 instalado no PC para rodar ?
2. Como faço para que este MDB trabalhe com várias conexões ao mesmo tempo ?
é que tenho um sistema antigo que ainda utiliza o MDB do Access 97, logo queria migrar para Access 2010 ou 2007.
Pergunta:
1. Se sistema feito projeto em VB6 com banco de dados Access 2010 , o usuário final é preciso ter o Microsoft Access 2010 instalado no PC para rodar ?
2. Como faço para que este MDB trabalhe com várias conexões ao mesmo tempo ?
O segredo é utilizar o ADO com uma connection string apropriada para ACCDB.
Citação::
O segredo é utilizar o ADO com uma connection string apropriada para ACCDB.
[txt-color=#e80000]Pelos meus conhecimentos do Access 97, eu criava um projeto no VB6 e utilizava assim:[/txt-color]
1. Primeiro eu adicionava a referência (Microsoft DAO 3.51 Object Library):
2. Criava um módulo com a conexão no banco de dados MDB (access 97):
[ô]... módulo...
Global BD As Database
Global TabProd As Recordset
Sub Main()
Dim Caminho as string
Caminho = App.path & [Ô]\Controle.mdb[Ô]
Set BD = DBEngine.Workspaces(0).OpenDatabase(Caminho, False, False, [Ô];PWD=!@#$[Ô])
Set TabSerial = BD.OpenRecordset([Ô]Serial[Ô], dbOpenTable)
[ô]EVITAR O ERRO DE ACESSO SIMULTÂNEO POR MAIS DE UMA APLICAÇÃO NA MESMA TABELA
DBEngine.Idle (dbFreeLocks)
End Sub
3. No botão eu adicionava a a gravação na tabela desejada:
[ô]PROCEDURE DO BOTÃO [Ô]CMD_GRAVAR[Ô] :
[ô]============================
[ô]GRAVAR NA TABELA DE PRODUTOS
[ô]============================
BeginTrans
TabProd.AddNew
TabProd([Ô]CodigoProd[Ô]) = FU_Busca_Codigo
TabProd([Ô]DescricaoProd[Ô]) = UCase(TxtDescricao.Text)
TabProd([Ô]PrecoVendaProd[Ô]) = Format(MaskPrecoVenda.Text, [Ô]#,##0.00;- #,##0.00[Ô])
TabProd([Ô]CustoProd[Ô]) = Format(MaskCustoUnit.Text, [Ô]#,##0.00;- #,##0.00[Ô])
TabProd.Update
CommitTrans
Function FU_Busca_Codigo() As Integer
[ô] DECLARA VARIAVEL
Dim XCOD As Long
[ô]BUSCA O CODIGO MAXIMO => CODMAX é UMA VARIÃVEL
SQL = [Ô]SELECT MAX(Produto.CodigoProd) AS CODMAX FROM Produto[Ô]
Set TabProd = BD.OpenRecordset(SQL)
If IsNull(TabProd!CODMAX) Then
Exit Function
End If
XCOD = TabProd!CODMAX
[ô]ABRE TABELA DE PRODUTOS PARA PESQUISAR
Set TabProd = BD.OpenRecordset([Ô]Produto[Ô])
[ô] MOVIMENTA PONTEIRO PARA O INICIO DA TABELA
If TabProd.RecordCount <> [Ô]0[Ô] Then
TabProd.MoveFirst
Else
Exit Function
End If
[ô]PROCURA O PROXIMO CODIGO DISPONIVEL
TabProd.Index = [Ô]IndCodProd[Ô]
For i = 1 To XCOD
TabProd.Seek [Ô]=[Ô], i
If TabProd.NoMatch Then [ô]SE NÃO ENCONTROU...
Busca_Codigo = i
Exit Function
End If
Next i
Busca_Codigo = XCOD + 1
End Function
[txt-size=2][txt-color=#e80000]Agora minha dúvida ?[/txt-color][/txt-size]
1. Alguém teria um simples exemplo igual eu fiz acima, mas utilizando o Access 2010 ?
2. O usuário final necessita ter o Access 2010 instalado para que funcione o sistema ?
3. Como faço para que este MDB trabalhe com várias conexões ao mesmo tempo ?
Niguem ?
1 - http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=365858
2 - Não. Apenas distribua os drivers listados no setup.
3 - Se várias conexões estão no mesmo aplicativo, cria mais de um objeto Connection. Se o acesso é pela rede, em vez de um caminho local como: C:\pastaBD\seubanco.mdb na string de conexão, coloque: \
omeServidor\compartilhamento\seubanco.mdb. Lembrando que, se operações concorrentes violarem regras de integridade podem ocorrer erros. Tente sempre ter o tempo de conexão mais curto o possÃvel em um procedimento no banco.
2 - Não. Apenas distribua os drivers listados no setup.
3 - Se várias conexões estão no mesmo aplicativo, cria mais de um objeto Connection. Se o acesso é pela rede, em vez de um caminho local como: C:\pastaBD\seubanco.mdb na string de conexão, coloque: \
omeServidor\compartilhamento\seubanco.mdb. Lembrando que, se operações concorrentes violarem regras de integridade podem ocorrer erros. Tente sempre ter o tempo de conexão mais curto o possÃvel em um procedimento no banco.
Tópico encerrado , respostas não são mais permitidas