Microsoft Access 掲示板

6,744 件中 3,681 から 3,720 までを表示しています。
12
りんご 2021/09/06 (月) 14:54:12 c564b@0e907

解決、おめでとうございます。
>> 7

難しそうです。

 リストボックスは、難しいけれど、便利なので、練習しておくといいですよ。
 連結列、コントロールソースの有無、列数、列幅、コード。
 抽出条件やコードやキークリック時イベントは、初めてのときは、難しいかもしれません。
[Forms]![フォームの名前]![テキストボックスの名前]
Me.リストボックス1.Column(1)
DoCmd.OpenQueryからのMe.リストボックス1.Requery
Msgbox KeyCodeからのKeyCode 32(スペースキー)
 知ってるよ、と問題なければ、やってることは、基本作業の積み上げです。
 元のテーブルを作ったら何も考えずにクエリ化、リストボックスに表示。
 絞り込めたら便利なので、テキストボックスを置いて🔑抽出条件
 選択クエリを作って絞り込み追加クエリに変更、仮テーブルに追加して別のリストボックスに表示。
 選択クエリを作って元テーブルと仮テーブルに線を引いて、更新クエリに変更、更新値に従って更新

最後に、単独主キーや複合主キーの設定は抜けていないと確認とれましたか?単独主キー、複合主キーがなければ、破綻しているので全部水の泡です。

11
チョコラブ 2021/09/06 (月) 14:27:30 1b30c@93fe9 >> 5

クエリに式を作る方法で一つのレコードだけにチェックすることができました。
その発想はなかったのでありがとうございました。

9
りんご 2021/09/06 (月) 13:12:59 c564b@0e907

>> 6

同じようにできますか?

出来たとしてもごちゃごちゃなりそうなのでイマイチですね。

26

大変失礼いたしました・・・。
再送しました。
宜しくお願いします。

8
チョコラブ 2021/09/06 (月) 12:37:50 f1313@ec441 >> 5

アドバイスありがとうございます。
試してみます。

7
チョコラブ 2021/09/06 (月) 12:36:51 f1313@ec441 >> 4

すみません。この方法は私には難しそうです....。

6
チョコラブ 2021/09/06 (月) 12:35:40 f1313@ec441 >> 3

アドバイスありがとうございます
今回、搬入完と検査完の二つを例にしてあげましたが、他にももっとあります。一部搬入完や一部検査完、不適合など全部で6つぐらいあります。それでも同じようにできますか?

進捗報告みたいなプラットフォームなので複雑なんでしょうか。

25

ファイルを見ましたが、
「T_受注」と「T_受注明細」がリンクテーブルの為、フォームを開くことができません。

ローカルテーブルに変更したものを、再度、送付してもらえませんか。

5
hiroton 2021/09/06 (月) 09:25:14 6f66f@f966d

最悪Excelのデータをリンクテーブルで読み込んでいるとかだと主キーがないこともあるんですかね


レコードソースをクエリにして主キーのようなもの: [初期ID] & "_" & [データKEY]フィールドを作って単一のフィールドでチェックできるようにしたらどうでしょう

24

hatena様

ありがとうございます。
ではファイルを送ります。
どうか宜しくお願い致します。

1
hiroton 2021/09/06 (月) 09:19:03 6f66f@f966d

ACCESSにはピボットテーブルのようなものがありませんが、ある指定した範囲や条件の集計をひとつのレコードもして扱うことはできませんか?

クロス集計クエリというものがあります。

上部に日付と名コードを配置して下部に子テーブルとして数量をいれるフィールドを配置するものだと思います

フォームを作成してテキストボックスを配置すると規定値プロパティが使えるので、VBAでこれを制御するのが分かりやすいと思います

このときに、キーボードからマウスに持ち替えなくていいように
任意のタイミングで、任意のキーを押すと、日付フィールドや名コードをアクティブにするのとはできますか?もちろんまた、数量フィールドにも戻りたいです

キー入力時というイベントがあるので、これで任意のキー入力に対して特定のコントロールをアクティブにすることができます。

また、オプションに「Enterキー入力後の動作」があるので、これを変更するとExcelと似たような動作になります。
このオプションはパソコン(インストールされたACCESS)毎の設定をデフォルトから変えることになるので、環境ごとに設定が必要です。

23

リンゴ様

「取引先コード」に入力後、ほかの部分をクリックしても同様です・・・。
色々お力添え頂きありがとうございます。

4
りんご 2021/09/06 (月) 05:27:23 c564b@0e907

ところで、これはお遊びですが
テーブル1『実テーブル』(実データ)🔑初期ID,🔑データKEY,属性,区分
テーブル2『仮テーブル』(基本空っぽ)🔑初期ID,🔑データKEY,属性,区分
 クエリ1『実クエリ』(テーブル1の選択クエリ)
 クエリ2『仮クエリ』(テーブル2の選択クエリ)
追加クエリ『実リストから仮テーブルへ』(テーブル1の追加クエリ)※実リストはそのまま。
 抽出条件:テキストボックス1、テキストボックス2
削除クエリ『仮リストから削除』(テーブル2の削除クエリ)※実リストはそのまま。
 抽出条件:テキストボックス3、テキストボックス4
更新クエリ『実テーブルと仮テーブルを内部結合』(テーブル1の更新クエリ)
 抽出条件:なし,レコードの更新:テキストボックス5

テキストボックス1『初期ID、実リストから追加クエリへ』  (非連結):⬜⬜⬜
テキストボックス2『データKEY、実リストから追加クエリへ』(非連結):⬜⬜⬜
テキストボックス3『初期ID、仮リストから削除クエリへ』  (非連結):⬜⬜⬜
テキストボックス4『データKEY、仮リストから削除クエリへ』(非連結):⬜⬜⬜

コマンドボタン1『更新ボタン』テキストボックス5『新しい更新値』(非連結):⬜⬜⬜
リストボックス1『実リスト』(非連結)     リストボックス2『仮リスト』(非連結)
値集合ソース:クエリ1                                 値集合ソース:クエリ2

初期IDデータKEY属性区分初期IDデータKEY属性 区分
11あああ未定 
12いいい未定
21ううう未定
22えええ未定
31おおお未定
32かかか未定

 例えば、行を選んで半角スペースキーを押すと、選択行の初期IDとデータKEYがテキストボックスに代入、追加クエリが実行されるように。実データが絞り込まれて、仮テーブルに追加されるので、仮リストの再クエリ。

初期IDデータKEY属性区分初期IDデータKEY属性 区分
11あああ未定11あああ未定
12いいい未定21ううう 未定
21ううう未定31おおお 未定
22えええ未定
31おおお未定
32かかか未定

 更新クエリを実行すると、新しい区分値に更新。但し初期IDとデータKEYの組み合わせが同じものに限る。

3
りんご 2021/09/06 (月) 05:13:13 c564b@0e907

 単独主キーですがこんなのもあるみたいですよ。複合主キーに応用する事ができれば。
複数選択リストボックスで選択したレコードの印刷 - hatena chips
画像

 ちなみに、これはどうですか?
 コマンドボタン『ほにゃらら』を押すと、区分が未定のときは検査完、検査完のときは未定になるように。

初期IDデータKEY属性区分
11あああ未定 コマンドボタン『ほにゃらら』
12いいい検査完コマンドボタン『ほにゃらら』
21ううう未定コマンドボタン『ほにゃらら』
22えええ検査完コマンドボタン『ほにゃらら』
31おおお未定コマンドボタン『ほにゃらら』
32かかか検査完コマンドボタン『ほにゃらら』
 オプショングループ『☑未定🔲検査完』(『🔲未定☑検査完』)の場合、クエリの中に演算フィールド『ほにゃらら』(区分が未定のときは1、検査完のときは2)を追加。オプショングループのコントロールソースに演算フィールド『ほにゃらら』を設定。オプションボタン『未定』をフォーカスしたら、区分が未定、『検査完』をフォーカスしたら、区分が検査完となるようにVBA。
※レコード編集中のときは、忘れずに確定させる。
2
チョコラブ 2021/09/05 (日) 19:32:21 a1f3a@735b7 >> 1

コメントありがとうございます。そうです。
”レコードを複数選択し、該当フィールドをまとめて更新したい”です。
1レコードずつ更新する仕組みで作られているのですが、利用者からめんどくさいからまとめて更新ができないかという相談があって改修しているのですが、1レコードずつ更新する仕組みも残したまままとめて更新できるように
別に非連結チェックボックスで選択して更新できるような仕組みを作っていたんです。

チェックする仕組みは参考URLで、できたのですが、データ初期IDが同じものだと一緒にチェックされてしまうのをなんとかすれば他はうまくいきそうなんです。

1
りんご 2021/09/05 (日) 18:43:38 c564b@0e907

一つずつ変更していたが、まとめて変更したいというものです。
 要変更レコードを複数絞り込み、該当フィールドを更新したいという事はないでしょうか?
主キーという設定がなく、主キーのような働きになっています。
 担当部署に直ちに確認しましょう。
 主キーや複合主キーは設定しない、それっぽいものが代わり・・・いやいや、、、まじですか?
他部署が作っておりテーブル設計に変更を加えることができず
 相談しましょう。業務ルールで1つずつ変更になっているなら、業務ルール変更の相談が先では?

22

外部からは判断の難しい状況になっているようですね。
実際のファイルを見ないと原因究明は難しいかもしれません。

この掲示板の右カラムの一番下に「ファイル送信フォーム」があります。
そこからファイルを送信することができますので、
うまくいかない現状のファイルを送ってもらえたら、
原因がわかるかもしれません。

2

フォームは連結フォームでしょうか。非連結フォームでしょうか。
連結フォームなら、コマンドボタンのコントロールウィザードでレコード削除のマクロを作成すれば、
カレントレコードを削除できるはずです。

画像1

それでうまくいかないのなら、
フォームの構成、レコードソースのテーブル構成等、詳細な説明をしてください。

4

解決済みとのことですが、レポートの場合は、サブレポートとして埋め込むことになります。

1
りんご 2021/09/04 (土) 19:55:52 c564b@0e907

マクロにも影響するかわからないけれど、エラーメッセージの表示設定はありになっていますか?
アクション クエリのメッセージを非表示にするには - Access - ヘルプの森
画像

21
りんご 2021/09/04 (土) 19:03:11 c564b@0e907

 「取引先コード」にデータを入力して、更新後処理発生(取引先コード以外をクリック等)しても、全く何もメッセージが出てきませんか?
 やっぱり何もメッセージが出なければ、ごめんなさい、此方の力及ばずでした。

20
涼子 2021/09/04 (土) 16:51:34 1a64f@e5635

新しく作った方のフォームで試しました。
お教えいただいたコードを「取引先コード」の更新後処理に書いてみました。
「取引先コード」にデータを入力しても全く何もメッセージが出てきません。
この状態でフォームの移動時のコードはそのままの時は「受注明細」には入力できません。
どうしてなのでしょう・・・。

19
りんご 2021/09/04 (土) 15:45:43 c564b@0e907

 取引先コードを入力して更新後処理イベントを発生させるけれど、Msgbox、例えば、「Msgbox"更新後、使用可能になりました"」と「Msgbox"更新後、使用不可能になりました"」のどちらも出てこない。
 もしそうであるならば、更新後イベントのコードが期待通りに動いていないように見えるので、条件式等を簡略化して、If構文を制御出来るように試行錯誤するのですが。

Public Sub 取引先コード_AfterUpdate()
   Msgbox Me.取引先コード.Value
   If Me.取引先コード.Value = 1 Then
        Msgbox “取引先コードは、1です。”
   Else
        Msgbox “取引先コードは、1ではありません。”
   End If
End Sub

 返信の際は、『Msgbox Me.取引先コード.Valueのメッセージ』も教えて下さい。

18

フォームを削除して新しく作り直して同じコードを書いてみましたがやはり同じ動作となってしまいます。
何が原因なんでしょう??

17

取引先コードのプロパティーの更新後処理は「イベントプロシージャ」になってます・・・。

16
りんご 2021/09/04 (土) 11:45:06 c564b@0e907

「取引先コード」の更新後処理の部分に入れた「Msgbox"あああ"」と「Msgbox"いいい"」はフォームのレコード移動時に入れたMsgboxを削除しても現れません。

 フォームを開き、デザインビューに切り替え、取引先コードを右クリック、プロパティをクリック。プロパティシートが表示されたら、イベントタブの更新後処理が空欄のままになっていないか見てください。
 もしも、空欄のままでしたら、[イベントプロシージャ]とする。(ビルダーの選択:コードビルダー)
 どうなりましたか?

15

リンゴ様

ご回答ありがとうございます。

フォームのレコード移動時の部分の「Msgbox"あああ"」のみフォームを開いた時に現れます。
「取引先コード」に入力しても「Msgbox"いいい"」は現れません。
「取引先コード」の更新後処理の部分に入れた「Msgbox"あああ"」と「Msgbox"いいい"」はフォームのレコード移動時に入れたMsgboxを削除しても現れません。

また、元テーブルのデータを全て削除しましたが変わりがありません。

新たに作り直すしかないでしょうか?

11

ODBCのドライバですが、[ODBC Driver 17 for SQL Server]をインストールし、
ADODBの接続に"Provider=MSOLEDBSQL";としてもダメでした。
(ちなみにSQLOLEDBも試しましたが同様でした。)

おや。
MSOLEDBSQL プロバイダは ODBC ではなく、OLEDB ドライバーではなかったでしょうか。
Microsoft OLE DB Driver for SQL Server

あと、念の為に申し上げておきますと
ODBCドライバが関係するのは、「 リンクテーブル 」です。
ADO で SQLServer に接続しているコードにおいては
OLEDB接続のため、ODBCドライバは関係ありません。
  

DAO接続では正しく動作したのでそうすればよいのですが、
修正箇所が多く…またデータ量が多いうえ
多人数で使用するシステムなので出来ればADO接続の方が良いのかなと考えています。

私はクロさんと見解が少し異なります。

ADO は【 SQLServerに接続し、操作するミドルウェア 】という点においては
確かに DAO より優位であると考えています。
ですが、Access フォームに SQLServer のデータをバインドする
という状況下では、利用しないでしょう。

ADO を利用しない理由としては、Access のフォーム
つまり Me.Recordset が DAO そのものであるから、です。
( Me.Recordset が ADO でいられるのは、現在は利用できない ADP だけですね )

なので、Set Me.Recordset = rs というコードは
ADO.Recordset が DAO.Recordset に暗黙変換されて
Access のフォームにバインドされます。
動作原理はリンクテーブルと似たりよったりでしょう。

したがって、パフォーマンスをお求めの場合はリンクテーブルではなく
パススルークエリをフォームのレコードソースに指定することをお薦めします。
  

' イケてないADO 接続(テキストボックスに#Name?が表示される)

以下のようにコードを変更して原因を探ってみてはいかがでしょう。

Private Sub cmdADODB_Click()
    '■ 参照設定を Microsoft ActiveX Data Objects 6.X Library に変更
    
    Dim rs As ADODB.Recordset '■ Nothingの状態に移行出来ないため、宣言時にNewはつけない。
    Dim strSQL As String
    
    strSQL = "SELECT * FROM SQLServer上のテーブル WHERE DATA1 LIKE '%みかん%'"
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient '■ クライアントカーソルに変更
    rs.Open strSQL, cn, adOpenStatic, adLockOptimistic
    
    Set rs.ActiveConnection = Nothing '■ RecordsetをSQLServerと切り離して独立させる
    Set Me.Recordset = rs
    
    If rs.EOF = False And rs.BOF = False Then
        Me.txtData1.ControlSource = rs![Data1].Name
        Me.txtData2.ControlSource = rs![Data2].Name
    End If
    
    Set rs = Nothing
End Sub
10
りんご 2021/09/03 (金) 21:19:44 c564b@0e907

ODBCのドライバですが、[ODBC Driver 17 for SQL Server]をインストールし、ADODBの
接続に"Provider=MSOLEDBSQL";としてもダメでした。(ちなみにSQLOLEDBも試しましたが同様でした。)

ODBCドライバーをインストールしたけれど、ADO接続が上手く出来ない、という事ですが、もしかしてOLEDBドライバーも要るのかも?正直、サーバー接続までやったことがないので、間違えならごめん。
Access を SQL Server に接続する - Microsoft Support
画像

9
くろ 2021/09/03 (金) 18:32:50

すみません、私の勘違いがありましたので、訂正と報告です。

データはSQLServer上にあり、リンクテーブルからADOdbで読んでいます。

これはリンクテーブルではなく、SQL Server上のテーブルから読んでいました。
rsがADODBで接続されているので当然の事でした。

同じくAccess上にリンクテーブルも張られていましたが、こちらはクエリを使用するためで
試しにリンクテーブルをすべて削除しても動作変わらずでした。(リンク先が無いエラーにはなりませんでした。)

ODBCのドライバですが、[ODBC Driver 17 for SQL Server]をインストールし、ADODBの
接続に"Provider=MSOLEDBSQL";としてもダメでした。(ちなみにSQLOLEDBも試しましたが同様でした。)
また、ODBCデータソースアドミニストレータ(64ビット)において、インストールした
ODBC Driverを使ってシステムDSNを構成し、このDSNを使って接続した場合も結果同じでした。

mayu様より、リンクテーブルを使ってDAOで読めば良いとのアドバイスをいただき試したところ、
この場合は正しく動作しました!ありがとうございます!!

DAO接続では正しく動作したのでそうすればよいのですが、修正箇所が多く…またデータ量が
多いうえ多人数で使用するシステムなので出来ればADO接続の方が良いのかなと考えています。

64bitAccessへの移行はすぐに絶対対応しないといけないと言うわけでもないため、引き続き
良い解法が無いか探しています。
引き続き良いアイデアがあればアドバイスいただけますと幸いです。

以下、試行中のイケた接続とイケてない接続方法です。

' イケてないADO 接続(テキストボックスに#Name?が表示される)
Private Sub cmdADODB_Click()
    Dim rs As New ADODB.Recordset
    Dim strSQL As String

    strSQL = "SELECT * FROM SQLServer上のテーブル WHERE DATA1 LIKE '%みかん%'"
    rs.Open strSQL, cn, adOpenStatic, adLockOptimistic
    ' cn はADODB.Connection としてSQLServerに接続しています。

    Set Me.Recordset = rs

    If rs.EOF = False And rs.BOF = False Then
        Me.txtData1.ControlSource = rs![DATA1].Name
        Me.txtData2.ControlSource = rs![DATA2].Name
    End If

    Set rs = Nothing

End Sub

' イケたDAO接続(でも修正箇所多く、処理速度に不安あり)
Private Sub cmdDAO_Click()
    Dim rs As DAO.Recordset
    Dim strSQL As String

    Set db = CurrentDB
    ' dbはDAO.Databaseとして宣言されています。

    strSQL = "SELECT * FROM リンクテーブル WHERE DATA1 LIKE'%いちご%'"
    SET rs = db.OpenRecordset(strSQL)

  Set Me.Recordset = rs
    ' これが無いと#Name? になりました。

    If rs.EOF = False And rs.BOF = False Then
        Me.txtData1.ControlSource = rs![DATA1].Name
        Me.txtData2.ControlSource = rs![DATA2].Name
    End If

    Set rs = Nothing
    Set db = Nothing

End Sub
14
りんご 2021/09/03 (金) 17:24:17 c564b@0e907

変わった事と言えば、その後、このフォームにコマンドボタンを一つ作りコードを書きましたが、原因追及のためボタンもコードも削除しました。

おかしくなったので、コードを消したら、『フォームを閉じて、再度、開く』までやってみる。
元に戻らないなら、例えば、わかりやすいように、Msgboxをコードに入れてみる。

Private Sub ほにゃらら()
   Msgbox Me.取引先コード.Value
   If Nz(Me.取引先コード.Value) = "" Then
        Me.受注明細.Enabled = False
        Msgbox “あああ”
   Else
        Me.受注明細.Enabled = True
        Msgbox “いいい”
   End If
End Sub

ダメなら、テーブルのコピーを別に残して、元データを全部削除してみるとかやってみるのはどうですか?

13
涼子 2021/09/03 (金) 16:40:04 1a64f@e5635

【問題発生】
恐れ入ります・・・・
なぜか突然動作不良になってしまいました・・・。

「取引先コード」の更新後処理とフォームのレコード移動時両方に以下のコードがある状態で、「受注明細」が入力できない状態になります。

Private Sub Form_Current()
   If Nz(Me.取引先コード.Value) = "" Then
        Me.受注明細.Enabled = False
   Else
        Me.受注明細.Enabled = True
   End If
   If Me.NewRecord = False Then Exit Sub
       Dim AutoID As String
       Dim MaxID As Variant
       AutoID = Format(Date, "yyyymmdd")
       MaxID = DMax("受注コード", "T_受注", "Left(受注コード,8)=" & AutoID)
   If IsNull(MaxID) Then
       Me.受注コード.DefaultValue = AutoID & "001"
   Else
       Me.受注コード.DefaultValue = AutoID & Format(Right(MaxID, 3) + 1, "000")
   End If
End Sub

Private Sub 取引先コード_AfterUpdate()
   If Nz(Me.取引先コード.Value) = "" Then
        Me.受注明細.Enabled = False
   Else
        Me.受注明細.Enabled = True
   End If
End Sub

フォームのレコード移動時のコードのみを消した場合、常に「受注明細」に入力できます。
「取引先コード」の更新後処理のコードを消しても「受注明細」には入力が出来ない状態です。
変わった事と言えば、その後、このフォームにコマンドボタンを一つ作りコードを書きましたが、原因追及のためボタンもコードも削除しました。
その他は触ってないはずなのですが、急に動作しなくなってしまいました。

他に何か考えられる原因はあるでしょうか?
どうぞよろしくお願いいたします・・・。

14
アクセス好き 2021/09/03 (金) 14:23:20 ddfe5@73ff2

hatena様
回答ありがとうございました。全てアドバイス通りにしましたら問題なく実行できました。解決しました! 私が記述ルールを理解してなかったのと名前がごっちゃになっていたのですね。色々してたら混乱してしまって・・・本当にありがとうございました。すっきりしました。
朱色様へ
私の説明不足(分かりにくい表現等)の中、何度も回答頂きありがとうございました。大変お手数かけました。大変勉強になりました。本当に感謝です。

ACCESSはなんて便利だろうと思って使っているのですが、奥が深いですね・・・

6

なるほど
サイズコードを軸に組み立てれば管理できそうですね。
テーブル設計例まで考えていただきありがとうございます。
期首日を利用しての管理方法は考えていなかったので、盛り込んで検討してみます。

3
Access初心者 2021/09/03 (金) 13:33:34 3e392@b524f

連投申し訳ありません。
レポートの件ですが作成しなくてもよくなったので取消いたします。
テーブル1のフォームにテーブル2.3のサブフォームを埋め込むというアドバイスを頂き誠にありがとうございました。
こちらで引き続き作成していきたいと思います。
こちらのスレは解決とさせていただきます。
ありがとうございました。

2
Access初心者 2021/09/03 (金) 13:24:04 3e392@b524f

hatena様
回答いただきありがとうございます。
このクエリをもとにレポートを出したいのですがレポートも同じようにサブフォームを埋め込めばよいのでしょうか?
フォームで情報を編集した後このクエリを使って最終的にはレポートを印刷したいと思っています。
そのレポートにはテーブル1.2.3のデータが必要となります。
情報不足で申し訳ありませんが宜しくお願い致します。

13

マクロ名、モジュール名、プロシージャ名を混同されているような感じなので、下記のように区別がつきやすい名前に変更しましょう。

標準モジュール モジュール名 mdlOpenForm (モジュール名は使わないのでなんでもよい)

このモジュール内に下記のようなプロシージャを作成

Public Function prcOpenForm()
    DoCmd.OpenForm "F部品入力", acNormal, , "部品ID=" & Command
End Function

これでプロシージャ名は prcOpenForm になります。

注:Function プロシージャにしてくたさい。Subプロシージャはマクロからは参照できません。

・マクロは下記のように設定します。
マクロ名 mcrOpenForm
 プロシージャの実行
 プロシージャ名 prcOpenForm()

注:プロシージャ名の末尾に () が必要。

ファイルAのフォーム上のコマンドボタンのクリック時のコードは、

Shell "msaccess ""C:\Users\user\Desktop\ACCESSファイル\製品部品構成.mdb"" /x mcrOpenForm /cmd " & Me.[部品構成ファイル対象ID]

以上でどうでしょうか。

1

現状だと下記のようなリレーションになっています。

テーブル2 多←1 テーブル11→多 テーブル3

このようなリレーションだとテーブル2とテーブル3は多対多の関係になるので、更新できないクエリになります。
また、データとしても重複が発生するので意味のないものになります。

3つのテーブルを一つの画面で更新できるようにするには、メイン/サブフォーム形式にするといいでしょう。

テーブル1 から単票フォームを作成して、そこに、
テーブル2、テーブル3からそれぞれ帳票フォームを作成してサブフォームとして埋め込みます。

12
アクセス好き 2021/09/03 (金) 09:14:16 ddfe5@73ff2

朱色様へ回答ありがとうございました。
まずファイルBのマクロを アクション:プロシージャの実行 プロシージャ名:MaOpenForm にして実行すると『指定した式に含まれる名前にはMaOpenFormが見つかりません』となるのです。これは何故でしょうか?(こうなるのでアクションをマクロの実行にしたのですが連絡しました通りのループのエラーがでてしまうのです)
モジュールですが『DoCmd.OpenForm "F部品入力", acNormal, , "部品ID=" & =Command()』になりますでしょうか? コマンドの名称が理解できてなくて。マクロでエラーするので先に進めず結果がわからないのですが。
多分私の記述が間違えていると思うのですが・・・度々申し分けありません。