4

Microsoft アクセスを使用しており、ボタンがクリックされたときに特定の ID のフォームを開きたいと考えています。Do.open フォームコマンドで id を指定できますか? 以下のコードはフォームを開きますが、id の入力を求めるダイアログ ボックスが開きます。誰でもアイデアはありますか?

Private Sub button1_Enter()
Dim recordID As Integer
recordID = Me.CurrentRecord
DoCmd.OpenForm "Form3", , , "ID = recordID"
End sub
4

4 に答える 4

7

まず、次を変更します。

recordID = Me.CurrentRecord

に:

recordID = Me.ID

Me.ID は、現在のフォームのフィールドまたはコントロールの名前です ( Microsoft Access - ボタンがクリックされたときにレコード ID を取得します)。

変数を参照するときは、引用符の外に置きます。

DoCmd.OpenForm "Form3", , , "ID = " & recordID

数値の ID の場合はこれで問題ありませんが、区切り文字が必要になるため、テキストと日付の場合はもう少し複雑になります。sometextvar引用符が含まれていない限り、これはうまく機能します。

DoCmd.OpenForm "Form3", , , "Atext = '" & sometextvar & "'"

さもないと

DoCmd.OpenForm "Form3", , , "Atext = '" & Replace(sometextvar,"'","''") & "'"

日付は # かかります

DoCmd.OpenForm "Form3", , , "ADate = #" & somedatevar & "#"

ロケールの問題を回避するために、ほとんどの場合、年、月、日などの形式にするのが最善です。

DoCmd.OpenForm "Form3", , , "ADate = #" & Format(somedatevar,"yyyy/mm/dd") & "#"
于 2012-11-22T11:05:15.870 に答える
1

私は同じものを試してみました.IDに付ける名前は、DBではなくフォームで使用される名前であることを確認してください! IE、私のIDはidDBにありますがpc_id、私のフォームにあります!

于 2015-02-19T18:03:31.433 に答える