VALIDAR RELACIONAMENTO DE TABELAS ARQUIVOS ?
Validar relacionamento de tabelas (arquivos) ?
Então, tentei bolar um esquema aqui, mas num tá dando certo ....
Pensei nisto:
- Tenho tabela filho e tabela pai;
- Faço um select count(campo_chave) da tabela filho p/ ver qtos. registros eu tenho retornados desta tabela;
- Faço outro select count(tab_filho.campo_chave) da tabela filho relacionada com tabela pai p/ ver qtos. registros eu tenho retornados deste relacionamento.
>> RESULTADO:
- No 2º select estão sendo retornados mais registros do que no 1º select !!
Como são arquivos soltos, num tenho como validar pelo relacionamento de um banco de dados, como SQL Server, Oracle, etc..
Código:
[ô]>>INÃCIO: Consistência tabela018->tabela019
strSQL = [Ô]select count(codigo) as cont from tabela018[Ô]
Set objRS = New ADODB.Recordset
Call objRS.Open(strSQL, g_objConexaoAccess, adOpenDynamic, adLockReadOnly, adCmdText)
lngContTabFilho = Val(objRS([Ô]cont[Ô]))
Set objRS = Nothing
strSQL = [Ô]select count(ix18.codigo) as cont from tabela018 ix18, tabela019 ix19 where [Ô] _
& [Ô](ix18.codigo = ix19.codigo)[Ô]
Set objRS = New ADODB.Recordset
Call objRS.Open(strSQL, g_objConexaoAccess, adOpenDynamic, adLockReadOnly, adCmdText)
lngContTabFilhoPai = Val(objRS([Ô]cont[Ô]))
Set objRS = Nothing
If lngContTabFilho = lngContTabFilhoPai Then
MsgBox [Ô]Consistência tabela018->tabela019: [Ô] & vbCrLf & [Ô]Dados validados com sucesso![Ô]
Else
MsgBox [Ô]Consistência tabela018->tabela019: [Ô] & vbCrLf & [Ô]Dados validados com problemas![Ô]
End If
[ô]>>FIM: Consistência tabela018->tabela019
Obs.: Tabela 019 é pai e tabela 018 é filho.
Grato.
Então, tentei bolar um esquema aqui, mas num tá dando certo ....
Pensei nisto:
- Tenho tabela filho e tabela pai;
- Faço um select count(campo_chave) da tabela filho p/ ver qtos. registros eu tenho retornados desta tabela;
- Faço outro select count(tab_filho.campo_chave) da tabela filho relacionada com tabela pai p/ ver qtos. registros eu tenho retornados deste relacionamento.
>> RESULTADO:
- No 2º select estão sendo retornados mais registros do que no 1º select !!
Como são arquivos soltos, num tenho como validar pelo relacionamento de um banco de dados, como SQL Server, Oracle, etc..
Código:
[ô]>>INÃCIO: Consistência tabela018->tabela019
strSQL = [Ô]select count(codigo) as cont from tabela018[Ô]
Set objRS = New ADODB.Recordset
Call objRS.Open(strSQL, g_objConexaoAccess, adOpenDynamic, adLockReadOnly, adCmdText)
lngContTabFilho = Val(objRS([Ô]cont[Ô]))
Set objRS = Nothing
strSQL = [Ô]select count(ix18.codigo) as cont from tabela018 ix18, tabela019 ix19 where [Ô] _
& [Ô](ix18.codigo = ix19.codigo)[Ô]
Set objRS = New ADODB.Recordset
Call objRS.Open(strSQL, g_objConexaoAccess, adOpenDynamic, adLockReadOnly, adCmdText)
lngContTabFilhoPai = Val(objRS([Ô]cont[Ô]))
Set objRS = Nothing
If lngContTabFilho = lngContTabFilhoPai Then
MsgBox [Ô]Consistência tabela018->tabela019: [Ô] & vbCrLf & [Ô]Dados validados com sucesso![Ô]
Else
MsgBox [Ô]Consistência tabela018->tabela019: [Ô] & vbCrLf & [Ô]Dados validados com problemas![Ô]
End If
[ô]>>FIM: Consistência tabela018->tabela019
Obs.: Tabela 019 é pai e tabela 018 é filho.
Grato.
Poste o CONTEÚDO (de teste) da tabela FILHO e da tabela PAI para tornar o tópico mais claro.
Baseado nesta linha:
Você está contando a tabela filho todas as vezes que encontrar um código na tabela pai. Portanto ACUMULANDO valores.
Qual validação você quer fazer?
Quer saber se todos os registros de FILHO tem relacionamento em PAI? Então tente este código:
strSQL = [Ô]select count(ix18.codigo) as cont from tabela018 ix18, tabela019 ix19 where (ix18.codigo = ix19.codigo)[Ô]
Você está contando a tabela filho todas as vezes que encontrar um código na tabela pai. Portanto ACUMULANDO valores.
Qual validação você quer fazer?
Quer saber se todos os registros de FILHO tem relacionamento em PAI? Então tente este código:
strSQL = [Ô]select count(ix18.codigo) as cont from tabela018 ix18 where ix18.codigo IN (select * from tabela019 ix19)[Ô]
Obrigado!
Tópico encerrado , respostas não são mais permitidas