MODULO X PATH
Recentemente criei um modulo onde coloquei o path (endereço) de meu banco de dados para ser procurado do modulo, ou seja, cada formulario inves de ter aquela linha:
Set bd = OpenDatabase(App.Path & "\dados.mdb")
terá a seguinte linha:
call ABRIR_BD()
Os codigos que usei no modulo foram os seguintes:
'no general_declaration
Global bd As Database
'na sub "ABRIR_BD"
Sub ABRIR_BD()
Set bd = OpenDatabase(App.Path & "\CYBERBASE.mdb")
End Sub
Os codigos que usei no form foram:
'no form_load
call ABRIR_BD()
Set TBCliente = bd.OpenRecordset("CLIENTES", dbOpenTable)
TBCcliente.Index = ("INDEX_CODIGO")
Toda vez que abrir aquele formulario inves de ter que endereço do banco de dados local (no form) ele buscará no modulo.
MEU PROBLEMA:
Tenho Datacontrol nos meus formularios.
Uso para abrir um banco de dados o seguinte codigo:
Data1.DatabaseName = (App.Path & "\dados.mdb")
se eu colocar esse linha na sub ABRIR_BD ele vai dizer que não existe o objeto Data1, então terei que mudar a linha para que fique assim:
FormX.Data1.DatabaseName = (App.Path & "\dados.mdb")
Só que existem varios formularios, usando 1, 2, 3... datacontrolÂÂÂ's...
vai ficar uma trabalhão ter que criar uma sub no modulo para cada um deles...
imagina:
Form1.Data1.DatabaseName = (App.Path & "\dados.mdb")
Form2.Data1.DatabaseName = (App.Path & "\dados.mdb")
Form3.Data1.DatabaseName = (App.Path & "\dados.mdb")
Form4.Data1.DatabaseName = (App.Path & "\dados.mdb")
...até o form30
eu tentei assim:
Me.Data1.DatabaseName = (App.Path & "\dados.mdb")
mas ele não aceita.
Como vou colocar num modulo o caminho de um BD usando um DataControl sem especificar o form ?
Set bd = OpenDatabase(App.Path & "\dados.mdb")
terá a seguinte linha:
call ABRIR_BD()
Os codigos que usei no modulo foram os seguintes:
'no general_declaration
Global bd As Database
'na sub "ABRIR_BD"
Sub ABRIR_BD()
Set bd = OpenDatabase(App.Path & "\CYBERBASE.mdb")
End Sub
Os codigos que usei no form foram:
'no form_load
call ABRIR_BD()
Set TBCliente = bd.OpenRecordset("CLIENTES", dbOpenTable)
TBCcliente.Index = ("INDEX_CODIGO")
Toda vez que abrir aquele formulario inves de ter que endereço do banco de dados local (no form) ele buscará no modulo.
MEU PROBLEMA:
Tenho Datacontrol nos meus formularios.
Uso para abrir um banco de dados o seguinte codigo:
Data1.DatabaseName = (App.Path & "\dados.mdb")
se eu colocar esse linha na sub ABRIR_BD ele vai dizer que não existe o objeto Data1, então terei que mudar a linha para que fique assim:
FormX.Data1.DatabaseName = (App.Path & "\dados.mdb")
Só que existem varios formularios, usando 1, 2, 3... datacontrolÂÂÂ's...
vai ficar uma trabalhão ter que criar uma sub no modulo para cada um deles...
imagina:
Form1.Data1.DatabaseName = (App.Path & "\dados.mdb")
Form2.Data1.DatabaseName = (App.Path & "\dados.mdb")
Form3.Data1.DatabaseName = (App.Path & "\dados.mdb")
Form4.Data1.DatabaseName = (App.Path & "\dados.mdb")
...até o form30
eu tentei assim:
Me.Data1.DatabaseName = (App.Path & "\dados.mdb")
mas ele não aceita.
Como vou colocar num modulo o caminho de um BD usando um DataControl sem especificar o form ?
nao parece tao dificil assim
'na sub "ABRIR_BD"
Sub ABRIR_BD()
Set bd = OpenDatabase(App.Path & "\CYBERBASE.mdb")
End Sub
coloca
Sub Abrir_BD(objData as Data,Byval CaminhoBanco as string)
Set bd = OpenDatabase(CaminhoBanco)
objData.Databasename = CaminhoBanco
End Sub
na hora de chamar
Abrir_BD me.Data1, app.path & "\dados.mdb"
Abrir_BD Form2.Data1, app.path & "\CyberBase.mdb"
vc trabalhava com o vb3, certo?
'na sub "ABRIR_BD"
Sub ABRIR_BD()
Set bd = OpenDatabase(App.Path & "\CYBERBASE.mdb")
End Sub
coloca
Sub Abrir_BD(objData as Data,Byval CaminhoBanco as string)
Set bd = OpenDatabase(CaminhoBanco)
objData.Databasename = CaminhoBanco
End Sub
na hora de chamar
Abrir_BD me.Data1, app.path & "\dados.mdb"
Abrir_BD Form2.Data1, app.path & "\CyberBase.mdb"
vc trabalhava com o vb3, certo?
na verdade o que coloquei foi apenas uma maneira de voce trabalhar com parametrtos - vc precisa definir o que precisa e passar na chamada os parametros corretos
Tópico encerrado , respostas não são mais permitidas