重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ACCESS VBA 引数取得について

テキストボックスが横に3つ並んでいてその3つは同じデータのレコードで、
例えば

| No | Name  |    Tel    |   ボタン  |
|~~1~~|~~~山~~~~|~~99-9999-9999~~| |__更新__| |
|~~2~~|~~~川~~~~|~~88-8888-8888~~| |__更新__| |
|~~3~~|~~~空~~~~|~~77-7777-7777~~| |__更新__| |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

となっていて、ボタンを押して別のフォームを開いてデータの更新をしたいのですが、その押したレコードのNoを引数にして別のフォームを開きたいのです。どのようにコードを書いていいのか分かりません。

今のところ引数はほかにもあるのでそれは取れていて
変数名 = (引数にしたい項目1)
変数名 = 変数名 & (引数にしたい項目2)
変数名 = 変数名 & (引数にしたい項目3)
DoCmd.OpenForm "フォーム名", , , , , acDialog, 変数名
 (↑openArgs)
までは書けています。

押したレコードのNoを引数に加えるというところがどのようにすればいいか分かりません。
教えてください。
よろしくお願いします。m(_ _)m

A 回答 (1件)

tab1:



No__Name__TEL
1___山____99-9999-9999
2___川____88-8888-8888
3___空____77-7777-7777

まず、列名がマズイですね。

ID__Kname__Phone
1___山_____99-9999-9999
2___川_____88-8888-8888
3___空_____77-7777-7777

などがいいです。

次は、[帳票フォーム]から[単票フォーム]を開くコードです。
[更新]ボタンは、一つで事足りますので、そのように修正しています。

Private Sub コマンド_単票更新フォームを開く_Click()
On Error Resume Next
  If Nz(Me.No) Then
    DoCmd.OpenForm "tab1_2", , , , , , "SELECT * FROM tab1 WHERE [No]=" & Me.No
  End If
End Sub

Private Sub Form_Load()
  If Len(Me.OpenArgs & "") Then
    Me.RecordSource = Me.OpenArgs
  End If
End Sub

ここでは、単票フォームのレコードソースを渡しています。
[No]と予約語を[]で囲んでいます。
こういうヤヤコシイことをしないで良いように列名を付けられたがいいです。
    • good
    • 0
この回答へのお礼

無事できました。 ありがとうございました。
助かりました。 m(_ _;)m

お礼日時:2007/11/21 13:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!