Adapt code like this:
Const adClipString = 2 ' 00000002
Const adOpenKeyset = 1 ' 00000001
Const adOpenStatic = 3 ' 00000003
Dim oFS : Set oFS = CreateObject( "Scripting.FileSystemObject" )
Dim sMdb : sMdb = oFS.GetAbsolutePathName( ".\slrs.mdb" )
Dim oCNCT : Set oCNCT = CreateObject( "ADODB.Connection" )
Dim sCS : sCS = Join( Array( _
"Provider=Microsoft.Jet.OLEDB.4.0" _
, "Data Source=" & sMdb _
), ";" )
Dim sSQL : sSQL = Join( Array( _
"SELECT A.Lawyer" _
, "FROM [lawyersa] AS A" _
, " , [lawyersb] AS B" _
, "WHERE A.Lawyer = B.Lawyer" _
), " " )
oCNCT.Open sCS
WScript.Echo "----- A"
WScript.Echo oCNCT.Execute( "SELECT * FROM [lawyersa]" ).GetString( adClipString, , " ", vbCrLf, "<NULL>" )
WScript.Echo "----- B"
WScript.Echo oCNCT.Execute( "SELECT * FROM [lawyersb]" ).GetString( adClipString, , " ", vbCrLf, "<NULL>" )
WScript.Echo "----- In both (sql)"
WScript.Echo oCNCT.Execute( sSQL ).GetString( adClipString, , " ", vbCrLf, "<NULL>" )
WScript.Echo "----- In both (pedestrian)"
Dim aB : aB = oCNCT.Execute( "SELECT * FROM [lawyersb]" ).GetRows()
Dim oRS
If False Then
Set oRS = CreateObject( "ADODB.Recordset" )
oRS.Open "SELECT * FROM [lawyersa]", oCNCT, adOpenStatic
Else
Set oRS = oCNCT.Execute( "SELECT * FROM [lawyersa]" )
End If
Dim nRow
For nRow = 0 to UBound( aB, 2 )
WScript.Echo "check B", aB( 0, nRow )
oRS.MoveFirst
Do Until oRS.EOF
WScript.Echo "check A", oRS.Fields( "Lawyer" ).Value
If oRS.Fields( "Lawyer" ).Value = aB( 0, nRow ) Then
WScript.Echo "**** in both", oRS.Fields( "Lawyer" ).Value
End If
oRS.MoveNext
Loop
Next
oCNCT.Close
output:
=== getLawyers: demo join =================
----- A
Ann
Bill
Emma
----- B
Ann
Cecil
Emma
----- In both (sql)
Ann
Emma
----- In both (pedestrian)
check B Ann
check A Ann
**** in both Ann
check A Bill
check A Emma
check B Cecil
check A Ann
check A Bill
check A Emma
check B Emma
check A Ann
check A Bill
check A Emma
**** in both Emma
=== getLawyers: 0 done (00:00:00) =========
to
(a) see how to solve your task with sql and avoid all the
problems of pedestrian loops
(b) see that the pedestrian way (especially the .MoveFirst)
works in principle (as I told you)
(c) check whether your code failed to .MoveFirst (Cursor type?)
or didn't loop as expected (how did you get the array?)