[英]MS Access runtime error '3061' too few parameters expected 2
我一直在玩這個vba / sql代碼已有一段時間了,我無法弄清楚為什么我總是收到錯誤消息“ MS Access運行時錯誤'3061'預期參數2太少”,我缺少什么嗎? 我試圖計算在帶有“ B”計划的“ reviews_programme”表中有多少條記錄(這是BFMA_Tasklist的聯接表的一部分,並在任務字段上聯接),該表介於2個從表單輸入的日期之間。 結果將顯示在表單上的文本框中。
Private Sub cmdstats_Click()
Dim sSQL As String
Dim db As Database
Dim rs As DAO.Recordset
sSQL = "SELECT Count(*) AS [CountOfScheduleB] " & _
"FROM [BFMA_TaskList] INNER JOIN [Reviews_Programme] ON [BFMA_TaskList].[Task] = [Reviews_Programme].[Task] " & _
"WHERE [BFMA_TaskList].[Schedule]=""B"" AND [Reviews_Programme].[Planned_Date] Between Me![txtstatsfrom] And Me![txtstatsto];"
Set db = CurrentDb
Set rs = db.OpenRecordset(sSQL)
If rs.RecordCount > 0 Then
Me.Text2 = rs![CountOfScheduleB]
Else
Me.Text2 = "N/A"
End If
Set rs = Nothing
Set db = Nothing
End Sub
任何幫助將不勝感激。 謝謝。
嘗試這個:
sSQL = "SELECT Count(*) AS [CountOfScheduleB] " & _
"FROM [BFMA_TaskList] INNER JOIN [Reviews_Programme] ON [BFMA_TaskList].[Task] = [Reviews_Programme].[Task] " & _
"WHERE [BFMA_TaskList].[Schedule]=""B"" AND [Reviews_Programme].[Planned_Date] Between #" & Format(Me![txtstatsfrom],"mm\/dd\/yyy") & "# And #" & Format(Me![txtstatsto],"mm\/dd\/yyy") & "#;"
首先,currentDB在哪里? 您需要為此建立數據庫連接,然后再調用它的表。
第二我認為“ B”就足夠了,不需要““ B””
第三,您需要使用“#”作為日期參數。 並格式化文本cos,我們都知道所有文本都是字符串。 您需要將其轉換。 例如format(data,“ format as”),請記住,如果此格式與數據庫相同,則效果會更好。
因此代碼應為:
Private Sub cmdstats_Click()
Dim sSQL As String
Dim db As Database
Dim rs As DAO.Recordset
sSQL = "SELECT Count(*) AS [CountOfScheduleB] " & _
"FROM [BFMA_TaskList] INNER JOIN [Reviews_Programme] ON [BFMA_TaskList].[Task] = [Reviews_Programme].[Task] " & _
"WHERE [BFMA_TaskList].[Schedule]='B' AND [Reviews_Programme].[Planned_Date] Between #' & format(Me![txtstatsfrom],"dd/mm/yyyy") & '# And #' & format(Me![txtstatsto],"dd/mm/yyyy") & #';"
'Set db = CurrentDb
Set db = OpenDatabase("Your database)
Set rs = db.OpenRecordset(sSQL)
If rs.RecordCount > 0 Then
Me.Text2 = rs![CountOfScheduleB]
Else
Me.Text2 = "N/A"
End If
Set rs = Nothing
Set db = Nothing
End Sub
要么
Private Sub cmdstats_Click()
Dim sSQL As String
Dim db As Database
Dim rs As DAO.Recordset
sSQL = "SELECT Count(*) AS [CountOfScheduleB] " & _
"FROM [BFMA_TaskList] INNER JOIN [Reviews_Programme] ON [BFMA_TaskList].[Task] = [Reviews_Programme].[Task] " & _
"WHERE [BFMA_TaskList].[Schedule]='B' AND [Reviews_Programme].[Planned_Date] Between '" & format(Me![txtstatsfrom],"dd/mm/yyyy") & "' And '" & format(Me![txtstatsto],"dd/mm/yyyy") & "';"
'Set db = CurrentDb
Set db = OpenDatabase("Your database)
Set rs = db.OpenRecordset(sSQL)
If rs.RecordCount > 0 Then
Me.Text2 = rs![CountOfScheduleB]
Else
Me.Text2 = "N/A"
End If
Set rs = Nothing
Set db = Nothing
End Sub
如果您確定自己做了什么,則可以刪除“我”。 因為我是形式。 有時我們需要“我”,有時則不需要。
編碼愉快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.