Access DB에서 Excel 스프레드 시트로 데이터를 가져 오는 사용자 지정 함수로 VLOOKUP 기능을 거의 복제하려고합니다. 전에는 이것을 한 적이 없지만 내 이해는 이것이 작동해야한다는 것입니다.
Function query(lookup_value)
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sQRY As String
Dim strFilePath As String
strFilePath = "Z:\filepath\database.accdb"
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " & strFilePath & ";Jet OLEDB:Database Password=password;"
cnn.Open
sQRY = "SELECT TOP 1 Ethnic FROM central_reference_table WHERE LearnerCode = '" & lookup_value & "'"
rs.Open sQRY, cnn
query = rs.Fields(0).Value
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Function
코드가 실행되지만 일반 #VALUE 오류를 반환합니다. Sub에서 동일한 연결 문자열을 사용할 수 Sheet1.Range("A1").CopyFromRecordSet
있으며 예상대로 작동하여 db의 첫 번째 행을 내 워크 시트에 놓습니다. 그래서 그것이 query = rs.Fields(0).Value
문제 일 것임에 틀림 없다. 그러나 내가 온라인에서 찾을 수있는 모든 것은 그것이 그것을하는 올바른 방법이라고 말하고있다. 그래서 나는 헤매고있다.
이것을 수정하면 :
Set rs = New ADODB.Record
이에:
Set rs = New ADODB.RecordSet
그런 다음 db 경로가 정확하고 실제로 입력 기준과 일치하는 레코드가있는 경우 함수로 작동합니다. 이를 위해 오류 처리를 추가해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다