Bom dia a todos do fórum,
Estou tendo dificuldades de enfrentar este vilão de meus projetos, não consigo fazer interagir um com o outro...
Exemplo, tenho um formulário onde existem vários outros subformulários. E nestes subformulário a maioria das vezes são amarrados com o N°Registro e Cliente, então quando eu abro a conexão do formulário principal, gostaria que junto os subformulários carregue os dados já filtrados com os dados que o formulário principal exibe.
Uso este tipo de conexão, mas quero também saber se é o jeito correto ou se não está fazendo diferença em desempenho usando neste método.
Formulário Principal:
Módulo:
Resumo: Existe um código de conexão melhor que este e como é que eu amarro os subformulários usando o SQL a função Where por que estou a quase 3 semanas tentando estudar isto e não consigo solução...
Estou tendo dificuldades de enfrentar este vilão de meus projetos, não consigo fazer interagir um com o outro...
Exemplo, tenho um formulário onde existem vários outros subformulários. E nestes subformulário a maioria das vezes são amarrados com o N°Registro e Cliente, então quando eu abro a conexão do formulário principal, gostaria que junto os subformulários carregue os dados já filtrados com os dados que o formulário principal exibe.
Uso este tipo de conexão, mas quero também saber se é o jeito correto ou se não está fazendo diferença em desempenho usando neste método.
Formulário Principal:
- Código:
Private Sub Form_Load()
' Abrindo conexão com o banco
caminhodb = CurrentDb.Name
Set db = DBEngine.OpenDatabase(caminhodb) ' Se você usa Back End, então só especificar o caminho com CurrentProject.Name & "\Nome.mdb"
Set rc = db.QueryDefs("CadastroDeEquipamentosNRBC_dlookupD")
SQL = rc.SQL
Set rs = db.OpenRecordset(SQL)
' Fim do código
Set Me.Recordset = rs
trct.Caption = Me.RCTn°
Dim caA As Integer
Dim caB As Integer
' Abrindo conexão com o banco
caA = Me.ClienteCódigo
caB = Me.RegistroN°
caminhodb = "\\SERVIDOR\Sistemas\Laudos 2012\Calibração_be.mdb"
Set db = DBEngine.OpenDatabase(caminhodb) ' Se você usa Back End, então só especificar o caminho com CurrentProject.Name & "\Nome.mdb"
Set rs1 = db.OpenRecordset("SELECT RCTn°, ClienteCódigo, RegistroN°, Calibrado, Freq, Periodic, DateAdd('m',[Freq],[Calibrado]) AS Próx, respcad, datacad FROM [Registro da CalibraçãoNRBC] WHERE [ClienteCódigo]= caA AND [RegistroN°]= caB ")
' Fim do código
Set Me.Calibrações_subformulário.Form.Recordset = rs1
End Sub
Módulo:
- Código:
Option Compare Database
' Habilitando as váriaveis para trabalhar
Global db As DAO.Database ' Se for em modo Back End Remova o ' da primeira linha
Global rs As DAO.Recordset
Global rs1 As DAO.Recordset
Global rs2 As DAO.Recordset
Global rs3 As DAO.Recordset
Global rs4 As DAO.Recordset
Global rc As DAO.QueryDef
Global fi As DAO.Field
Global caminhodb As String
Resumo: Existe um código de conexão melhor que este e como é que eu amarro os subformulários usando o SQL a função Where por que estou a quase 3 semanas tentando estudar isto e não consigo solução...