• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

PuPax

VB6 com Access

7 mensagens neste tópico

Eu queria saber como ligar o visual basic a uma base de dados do Microsoft Acces alguem me ajuda?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

existem diversas formas de o fazer...

como sabes a programação nos dias de hoje desenvolve-se em blocos, pedaços de código que fazem coisas "out-of-the-box" para que os programadores se dediquem inteiramente às questões especificas ao que desejam

estes blocos chamam-se API (Aplication Programming Interface) e são blocos de código para as tarefas comuns a todos os programadores, nomeadamente o acesso a bases de dados...

a api ADODB é uma serie de rotinas e funções de código que gerem as questões de baixo nivel relativas ao acesso às bases de dados...

em seguida vou mostrar os pontos mais importantes em código da manipulação de bases de dados access recorrendo à API ADODB

Definem-se os objectos necessários como:

  • uma ligação à base de dados (connection)
  • um command (para ir buscar os dados à bd)
  • e um Recordset para armazenar os dados na memoria, tornando possivel a sua  manipulação em código

Dim conConnection As New ADODB.Connection
Dim cmdCommand As New ADODB.Command
Dim rstRecordSet As New ADODB.Recordset

a connection string para a ligação (connection) define o processo de ligação à bd como:

  • o Provider (os drivers da bd)
  • Data Source (define a bd para se aceder)
  • o modo e outras são opcionais

conConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      App.Path & "\" & "database.mdb;Mode=Read|Write"

 

estabeleçer a ligação

conConnection.Open

defenir as propriedades do objecto command

  • Qual a ligação a usar (connection)
  • a query a executar (os dados que queremos)
  • o tipo de comando(nexte caso um comando de text em T-SQL

With cmdCommand
    .ActiveConnection = conConnection
    .CommandText = "SELECT * FROM tabTestTable;"
    .CommandType = adCmdText
End With

o command vai buscar os dados à bd e passa-os para o recordset como podem ver a seguir

With rstRecordSet
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .LockType = adLockOptimistic
    .Open cmdCommand  ' neste parametro metem o comando onde fizeram o select e ele passa os dados para o recordset
End With

agora este recordset têm todos os registos retornado na query "SELECT * FROM tabTestTable"

podem agora aceder aos dados atraves do recordset recem criado

valor = rstRecordSet.Fields(1)

não se esqueçam de fechar as ligações e destruir os objectos quando já não precisam deles para libertar recursos no servidor

rstRecordSet.Close

conConnection.Close

Set conConnection = Nothing
Set cmdCommand = Nothing
Set rstRecordSet = Nothing

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem teckV, Isso tudo está tudo bem mas acho que para resolver a dúvida do puPax deve-se dizer "coisas" mais simples

Ora para ligar a base de dados em access ao VB6:

No Access:

1º Criar a base de dados, grava-la, e depois de gravar ir ao menu "ferramentas" > "Utilitarios de base de dados" > "Converter base de dados" > e converter a base de dados para uma versão anterior da base de dados access..

No vb6:

1º Inserir um objecto DATA no Form

2º Selecionar esse objecto e alterar as propriadades:

  • Data Base name: Selecionando a base de dados
  • Record Sorce: Selecinoando a tabela

Estas sao as propriedades, digamos, principais do objecto Data.

Depois para ler os dados da tabela basta Pex:

data1.recordset.findfirst "nome'" & text1 & "'"

if data1.recordset.nomatch then

msgbox "nome não existe"

else

msgbox "o nome ' " &text1 &"' Está na " & data1.recordset.fields(0) & " ' posição "

end if

isso é um exemplo.. depois podes explorar uma bocadinho mais o data1.recordset e ler sobre isso... O objecto que faz a ligação "directa" com a base de dados é o Data.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isto nao tem que ser adicionado um controlador ou xamem-lhe o k kiserem em Origem de dados (ODCB) nas ferramentas administrativas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu queria saber como ligar o visual basic a uma base de dados do Microsoft Acces alguem me ajuda?

na barra de ferramentas em cima, vais a Project - Add Data Envoriment. Dps aparece te uma janela, selecionas Connection1 e vais a properties. Escolhes

Microsoft jet 4.0 OLE DB Provider da lista e carregas next.

Dps no passo 1 localizas a tua BD e fazes testconection. Se der sucess ja ta.

Se quiseres fazer uma aplicação simples pa pesquisar na bd, vais a connection metes add command. Dps vais as properties do command escolhes SQL statment e metes o cod de SQL ou então vais a SQL builder e aparece t 2 janelas. Na data view vais a connection1 - tables e arrastas as tabelas k keres para a outra. Selecionas as colums e fazes run nessa janela. Dps fechas, guardas a query. Agora é só arrastares o command para o teu form e criares uns

botões de pesquisa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem teckV, Isso tudo está tudo bem mas acho que para resolver a dúvida do puPax deve-se dizer "coisas" mais simples

Ora para ligar a base de dados em access ao VB6:

No Access:

1º Criar a base de dados, grava-la, e depois de gravar ir ao menu "ferramentas" > "Utilitarios de base de dados" > "Converter base de dados" > e converter a base de dados para uma versão anterior da base de dados access..

No vb6:

1º Inserir um objecto DATA no Form

2º Selecionar esse objecto e alterar as propriadades:

  • Data Base name: Selecionando a base de dados
  • Record Sorce: Selecinoando a tabela

Estas sao as propriedades, digamos, principais do objecto Data.

Depois para ler os dados da tabela basta Pex:

data1.recordset.findfirst "nome'" & text1 & "'"

if data1.recordset.nomatch then

msgbox "nome não existe"

else

msgbox "o nome ' " &text1 &"' Está na " & data1.recordset.fields(0) & " ' posição "

end if

isso é um exemplo.. depois podes explorar uma bocadinho mais o data1.recordset e ler sobre isso... O objecto que faz a ligação "directa" com a base de dados é o Data.

Opá nao consigo fazer isto :S eu´consigo ligar PHP com MYSql agora VB com access dá um barraco :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora