|
いつもお世話になってます。
UQ_コメント印刷用を元に、F_コメント印刷 上で条件をつけた Q_コメント印刷用をレポートソースにR_結果通知を印刷しようとしています。
そのため以下のように記述しているのですが、
エラー「実行時エラー’3061’ パラメータが少なすぎます。」が出ます。
このエラーは 検索条件・・日付を書き加えたら出るようになりました。
検索条件・・日付の記述方法がおかしいのだと思いますが、修正方法がよくわかりません。
constr = " WHERE UQ_コメント印刷用.受診日 between #" & Forms!F_コメント印刷!受診日& "# And #" & Forms!F_コメント印刷!受診日至 & "# "
日付を##で囲んだりしたんですが、別のエラーが出ました。
解決方法をどなたかご教示をよろしくお願いします。
Private Sub cmd_印刷_Click()
Dim db As Database
Dim qdf As QueryDef
Dim rst As Recordset
Dim str As String, constr As String
str = "SELECT UQ_コメント印刷用.* FROM UQ_コメント印刷用"
constr = ""
'検索条件・・・判定番号
If IsNull(Me.フレーム6) Then
constr = ""
Else
Select Case フレーム6
Case 1
constr = " WHERE UQ_コメント印刷用.判定番号 > 3"
Case 2
constr = " WHERE UQ_コメント印刷用.判定番号 < 4"
End Select
End If
'検索条件・・・社員コード
If constr = "" And Not IsNull(Me.社員コード) Then
constr = " WHERE (UQ_コメント印刷用.社員コード = " & Me.社員コード & ")"
ElseIf Not IsNull(Me.社員コード) Then
constr = constr & " AND (UQ_コメント印刷用.社員コード = " & Me.社員コード & ")"
End If
'検索条件・・・カナ氏名
If constr = "" And Not IsNull(Me.カナ氏名) Then
constr = " WHERE (UQ_コメント印刷用.カナ氏名 Like '*" & Me.カナ氏名 & "*')"
ElseIf Not IsNull(Me.カナ氏名) Then
constr = constr & " AND (UQ_コメント印刷用.カナ氏名 Like '*" & Me.カナ氏名 & "*')"
End If
'検索条件・・・日付
If constr = "" Then
constr = " WHERE UQ_コメント印刷用.受診日 between Forms!F_コメント印刷!受診日 and Forms!F_コメント印刷!受診日至"
Else
constr = constr & " AND WHERE UQ_コメント印刷用.受診日 between Forms!F_コメント印刷!受診日 and Forms!F_コメント印刷!受診日至"
End If
'クエリの作成
str = str & constr & ";"
Set db = CurrentDb()
Set qdf = db.QueryDefs("Q_コメント印刷用")
qdf.SQL = str
qdf.Close
Set rst = db.OpenRecordset("Q_コメント印刷用")
If rst.RecordCount = 0 Then
MsgBox "対象者がいません。", vbOKOnly, "データなし"
rst.Close
db.Close
Else
rst.Close
db.Close
DoCmd.OpenReport "R_結果通知", acViewPreview
End If
End Sub
(WIN ACCESS ともに2000)
|
|