[英]How to open a recordset from a recordset?
我想用另一個記錄集的VBA打開一個記錄集。
如果我編寫SQL並將其保存到名為new_entry和valid_unit的查詢中,則此方法有效
' valid_unit
SELECT *
FROM import_raw_data
WHERE unit_name IN (SELECT unit_name FROM unit);
' new_entry
SELECT *
FROM valid_unit
WHERE id NOT IN (SELECT id FROM serviceman);
WHERE
但是,我想專門在VBA中執行此操作,而不是保存查詢。
Sub testing()
valid_unit_sql = _
"SELECT * " _
& "FROM import_raw_data"
& "WHERE unit_name IN (SELECT unit_name FROM unit);
new_entry_sql = _
"SELECT * "
& "FROM ( " & valid_unit_sql & ") " _
& "WHERE id NOT IN (SELECT id FROM serviceman);"
With CurrentDb
Set valid_unit = .OpenRecordset(valid_unit_sql)
' valid_unit works great
Set new_entry = .OpenRecordset(new_entry_sql)
' this doesnt, it errors out
End With
End Sub
我可以知道該怎么做嗎? 我應該保存我的valid_unit查詢和FROM valid_unit嗎?
您的引號"
和換行符& _
有點混亂。我不知道這是否是復制粘貼錯誤,或者這是否是您的實際代碼(無法編譯)。
無論如何,請嘗試以下操作:
Sub testing()
valid_unit_sql = "SELECT * " & _
"FROM import_raw_data " & _
"WHERE unit_name IN (SELECT unit_name FROM unit)"
new_entry_sql = "SELECT * " & _
"FROM (" & valid_unit_sql & ") AS T " & _
"WHERE T.id NOT IN (SELECT id FROM serviceman);"
Debug.Print new_entry_sql
With CurrentDb
Set valid_unit = .OpenRecordset(valid_unit_sql)
Set new_entry = .OpenRecordset(new_entry_sql)
End With
End Sub
輸出SQL:
SELECT *
FROM
(
SELECT *
FROM import_raw_data
WHERE unit_name IN (SELECT unit_name FROM unit)
) AS T
WHERE T.id NOT IN (SELECT id FROM serviceman);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.