Я знаю, что это было задано раньше, но вопросы, которые я смотрел, все немного разные. Я работаю над созданием временной таблицы, импортированием данных, размещением данных в существующей таблице и удалением таблицы temp. Вот мой код:Ошибка времени выполнения '3061' Слишком мало параметров. Ожидаемый 3
Dim db As Database
Dim StrSql As String
Dim rst As Recordset
Set db = CurrentDb()
If DCount("[Name]", "MSysObjects", "[Name] = 'tblInfoLink'") = 1 Then
DoCmd.DeleteObject acTable, "tblInfoLink"
StrSql = "SELECT tblStaff.LastName, tblStaff.FirstName, tblStaff.Rank, tblStaff.PriPhone, " _
& " tblStaff.SecPhone, tblStaff.HireDate INTO tblInfoLink " _
& " FROM [\\Server\BE.accdb].tblStaff " _
& " WHERE (((tblInfo.LastName)=[tblInfo].[LastName]) AND ((tblInfo.FirstName)=[tblInfo].[FirstName]) AND ((tblInfo.HireDate)=[tblInfo].[HireDate]));"
db.Execute StrSql
ElseIf DCount("[Name]", "MSysObjects", "[Name] = 'tblInfoLink'") = 0 Then
StrSql = "SELECT tblStaff.LastName, tblStaff.FirstName, tblStaff.Rank, tblStaff.PriPhone, " _
& " tblStaff.SecPhone, tblStaff.HireDate INTO tblInfoLink " _
& " FROM [\\Server\BE.accdb].tblStaff " _
& " WHERE (((tblStaff.LastName)=[tblInfo].[LastName]) AND " _
& " ((tblStaff.FirstName)=[tblInfo].[FirstName]) AND ((tblStaff.HireDate)=[tblInfo].[HireDate]));"
db.Execute StrSql
End If
StrSql = "Update tblInfo Set PriPhone = Null, SecPhone = Null"
db.Execute StrSql
StrSql = "INSERT Into tblInfo (PriPhone, SecPhone) " _
& " SELECT tblInfoLink.PriPhone, tblInfoLink.SecPhone " _
& " FROM tblInfoLink " _
& " WHERE (((tblInfoLink.LastName)=[tblInfo].[LastName]) AND " _
& " ((tblInfoLink.FirstName)=[tblInfo].[FirstName]) AND ((tblInfoLink.HireDate)=[tblInfo].[HireDate]));"
db.Execute StrSql
'Delete Linked Tables
DoCmd.DeleteObject acTable, "tblInfoLink"
Как только я пытаюсь запустить это, я получаю Ошибка выполнения «3061» Слишком мало параметров. Ожидаемый 3. Когда я ударил отладки highligthed зона:
db.Execute StrSql
Я знаю, что после End If, все работает. Это буквально самая важная часть этого, которая НЕ работает.
ЛЮБЫЕ идеи? Заранее спасибо!
Попробуйте использовать 'Debug.Print StrSql' или' MsgBox StrSql' перед строкой для проверки запроса, я считаю, что вы обнаружите проблемы –
Это просто показывает мне точный оператор SQL, который я делаю. 'SELECT LastName, FirstName, Rank, PriPhone, SecPhone, HireDate INTO tblOfcInfoLink FROM [\\ Server \ BE.accdb] .tblStaff WHERE (((tblStaff.LastName) = [tblInfo]. [LastName]) AND ((tblStaff .FirstName) = [tblInfo]. [FirstName]) AND ((tblStaff.HireDate) = [tblInfo]. [HireDate])); ' – S1naps1s
вы использовали' Debug.Print StrSql'? –