VBA 中的 1 列中的内部联接字符串和整数值

Inner Join String & Integer Value both in 1 column in VBA

请在下面找到我的 table 和 VBA 代码。

table 1:-

table 2:-

需要输出

我收到 表达式中的类型不匹配。 错误,我认为这是因为在 table 2 中字符串和整数值都可用。

请在下面找到我的 VBA 代码并指导我如何执行内部连接。

Sub sql()


sql_string = "SELECT [Sheet1$].[Sr], [Name],[Sheet3$].[Names] FROM" & _
"[Sheet3$] INNER JOIN [Sheet1$] ON [Sheet1$].[Sr]=[Sheet3$].[Sr]"

sq = SQL_query(sql_string)

end sub


Function SQL_query(ByRef sql_string As Variant)

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

strFile = ThisWorkbook.FullName
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon

strSQL = sql_string

rs.Open strSQL, cn ''Here i am getting error...


Sheet5.Range("A2").CopyFromRecordset rs

End Function

更改 sql 查询以确保 Sr 都作为字符串进行比较

sql_string = "SELECT [Sheet1$].[Sr], [Sheet3$].[Names] FROM [Sheet3$] INNER JOIN [Sheet1$] ON CStr([Sheet1$].[Sr])=CStr([Sheet3$].[Sr])"