Option Explicit
Dim DB As Database 'database
Dim RS As Recordset 'レコードセット
Dim RS2 As Recordset
Dim f As Variant
Dim NRec As Long 'レコード数
Dim Crec As Long 'カレントレコード
Private Sub Command4_Click()
'先頭へボタン
If Crec <> 1 Then
RS2.MoveFirst
Call Indication
Crec = 1
Text4.Text = Format(Crec) & "/" & Format(NRec)
End If
End Sub
Private Sub Command5_Click()
'前へボタン
If Crec <> 1 Then
RS2.MovePrevious
Call Indication
Crec = Crec - 1
Text4.Text = Format(Crec) & "/" & Format(NRec)
End If
End Sub
Private Sub Command6_Click()
'次へボタン
If Crec <> NRec Then
RS2.MoveNext
Call Indication
Crec = Crec + 1
Text4.Text = Format(Crec) & "/" & Format(NRec)
End If
End Sub
Private Sub Command7_Click()
'最後へボタン
If Crec <> NRec Then
RS2.MoveLast
Call Indication
Crec = NRec
Text4.Text = Format(Crec) & "/" & Format(NRec)
End If
End Sub
Private Sub Form_Load()
'Accessファイル名称
Dim TableName As String 'テーブル名称
Set DB = OpenDatabase("C:\デスクトップ\data.mdb")
Set RS = DB.OpenRecordset("テーブル1", dbOpenSnapshot)
f = 11
RS.Filter = "配置" & "=" & "'f'" '←fを変数にしたい
Set RS2 = RS.OpenRecordset
'With RS2
'If .RecordCount <> 0 Then .MoveLast
'.MoveFirst
'End With
RS2.MoveLast
NRec = RS2.RecordCount
RS2.MoveFirst
Call Indication
Crec = 1
Text4.Text = Format(Crec) & "/" & Format(NRec)
End Sub
Private Sub Form_Unload(Cancel As Integer)
RS.Close
DB.Close
Set RS = Nothing
Set DB = Nothing
End Sub
Private Sub Indication()
'レコードセットオブジェクトの内容をテキストボックスにコピー
Text1.Text = RS2.Fields(1)
Text2.Text = RS2.Fields(4)
End Sub
この RS.Filter = "配置" & "=" & "'f'" の文のfを直接数字にすると正常に配置の列の11だけを探し出してコマンドボタンで閲覧(text1.text2で表示)できるのですが、fを用い変数化しようとすると、エラーがでます。ちょっとした事だと思うのですが、教えて下さい。あと簡略化できるのであれば教えて下さい。
上記訂正(最後から3行目)。
「この RS.Filter = "配置" & "=" & "'f'" の文のfを直接数字(11)にすると正常に配置の列の11だけを探し出してコマンドボタンで閲覧(text1.text2で表示)できる」
です。
RS.Filter = "配置" & "=" & "'f'"
を
RS.Filter = "配置" & "=" & "11"
とすればうまくいくが
RS.Filter = "配置" & "=" & f
だと失敗するってことでよろしいですか?
fがなぜVariantなのかもちょっとひっかかりますが、
RS.Filter = "配置" & "=" & CStr(f)
ではだめですか?
データベースでの
配置フィールドの型は何ですか?
Loreleyさんありがとうございます。そのとうりにした所、「カレントレコードがありません」と表示します。この文自体が間違っているのでしょうか?
とろさんありがとうございます。
配置フィールドの型はACCESS2000形式でノーマル(列名はID、階、配置、名前と変えてある)で列名を変更して、フィールド数は4っです。そして今回はフィールド名(配置)のデータ(数)を指定して、そのレコードを抽出してカウントし、コマンドボタンで順に閲覧して行きたいと思ってます。
あ、失礼。まちがえました(^^;
RS.Filter = "配置" & "=" & CStr(f)
ではなくて
RS.Filter = "配置" & "='" & CStr(f) &"'"
でした
ごめんなさい
Loreleyさんありがとうございます。できました(^_^)v
また何かわからないことあれば宜しくお願いします。
ツイート | ![]() |