ник: osmor
нет теперь же один рекордсет...
нужно сравнить поля в одинаковыми именами из разных таблиц.
предположим что есть две таблицы в разными именами (tbl1 b tbl2) и одинаковым набором полей.
Ну примерно так:
Нужно передать имена таблиц и имя ключевого поля
как только встретит несовпадение вернет 1
если все совпадает вернет 0
проверки на несовпадение имен полей в таблицах - нет
Function CompTable(NameSourceTBL as string,NameTargetTBL as string, NameIdField as string) as Byte
dim raznicaECTb as byte
Dim rst As DAO.Recordset
Dim fld As DAO.Field
dim strNameTabl1 as string
dim strNameTabl2 as string
dim strIDName as string
strNameTabl1 = NameSourceTBL ' имя таблицы 1
strNameTabl2 = NameTargetTBL ' имя таблицы 2
strIDName = NameIdField ' имя ключевого поля
Set rst = CurrentDb.OpenRecordset("SELECT " & _
strNameTabl1 & ".*, " & strNameTabl1 & ".* FROM " & _
strNameTabl1 & " INNER JOIN " & strNameTabl2 & _
" ON " & strNameTabl1 & "." & strIDName & " = " & strNameTabl2 & "." & strIDName & ";")
with rst
if .recordcount <> 0 then
rst.MoveFirst
raznicaECTb = 0
do while not .eof and raznicaECTb =0
For Each fld In rst.Fields
if fld.SourceTable = strNameTabl1 then
if fld.value <> .Fields(strNameTabl2 & "." & fld.SourceField).value then
raznicaECTb = 1
Exit For
end if
end if
Next
loop
end if
CompTable = raznicaECTb
end function
|
писал прям здесь , возможно есть опечатки...