Как правильно выполнить запрос из VBA
Формулировка задачи:
Как правильно выполнить запрос из VBA с заданным условием ClNum?
ClNum определяется в коде VBA заранее.
Set rsIMP_Start2 = db.OpenRecordset("Select cliennumber, summa From IMP_Start Where cliennumber = ClNum")
Этот запрос выдает ошибку:
Слишком мало параметров. Требуется 1.
ClNum определяется в коде VBA заранее.
Set rsIMP_Start2 = db.OpenRecordset("Select cliennumber, summa From IMP_Start Where cliennumber = ClNum")
Этот запрос выдает ошибку:
Слишком мало параметров. Требуется 1.
Решение задачи: «Как правильно выполнить запрос из VBA»
textual
Листинг программы
<font color="blue">Dim</font> db <font color="blue">As</font> DAO.Database
<font color="blue">Dim</font> rst <font color="blue">As</font> DAO.Recordset
<font color="blue">Dim</font> ClNum <font color="blue">As</font> Variant
<font color="blue">Set</font> db = CurrentDb
ClNum = <font color="darkblue"><b>1</b></font>
<font color="00AA00">'Если поле <font color="teal">"cliennumber"</font> - числовое.</font>
<font color="blue">Set</font> rst = db.OpenRecordset( _
<font color="teal">"SELECT cliennumber, summa FROM IMP_Start WHERE cliennumber = "</font> & ClNum)
<font color="00AA00">'Если поле <font color="teal">"cliennumber"</font> - строковое.</font>
<font color="00AA00">'Set rst = db.OpenRecordset( _</font>
<font color="teal">"SELECT cliennumber, summa FROM IMP_Start WHERE cliennumber = '"</font> & ClNum & <font color="teal">"'"</font>)
<font color="blue">If</font> <font color="blue">Not</font> rst.EOF <font color="blue">Then</font>
<font color="blue">Do</font> <font color="blue">Until</font> rst.EOF
Debug.<font color="blue">Print</font> rst.Fields(<font color="darkblue"><b>0</b></font>); rst.Fields(<font color="darkblue"><b>1</b></font>)
rst.MoveNext
<font color="blue">Loop</font>
<font color="blue">End</font> <font color="blue">If</font>
rst.<font color="blue">Close</font>
<font color="blue">Set</font> rst = <font color="blue">Nothing</font>
<font color="blue">Set</font> db = <font color="blue">Nothing</font>