• ベストアンサー

アクセス2003のフォーム上のコマンドボタンについて。

アクセス2003のフォームで一覧を作っています。その中の1つをクリックすると詳細画面に移動させようとコマンドボタンをおいたのですが、下記のエラーが出ます。対処法を教えてください。 エラーの内容です↓ テーブル’業者登録’はほかのユーザーが排他的に開いているか、既にユーザーインターフェイスを介して開いているので、プログラムによって操作することはできません。 ACCESSのバージョンは2003です。 ’メンテナンス進捗’というフォーム上に一覧があり、それぞれに詳細ボタンを置き、その詳細ボタンをクリックするとそのIDに見合ったメンテナンスの画面を開きたいです。 主テーブルは‘メンテナンス‘で副テーブルには’機器登録’と’業者登録’があります。‘メンテナンス‘と’機器登録’は機器管理IDで結ばれ、と’機器登録’と’業者登録’は業者IDで結ばれています。このリレーションの仕方が悪いのでしょうか?分かりづらくて申し訳ありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

少し話を整理しません テーブルは 「メンテナンス」 「業者登録」 「機器登録」 の3つですね 一覧フォーム「メンテナンス進捗」のソースは? 「メンテナンスの画面」フォームのソースは?

ayanohina
質問者

補足

「メンテナンス進捗」のソースは「メンテナンスクエリ」で「メンテナンスの画面」フォームのソースも「メンテナンスクエリ」です。これがおかしいですか?

その他の回答 (3)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.3

フォームの「レコードロック」プロパティが 「すべてのレコード」になっていませんか?

ayanohina
質問者

補足

確認したところ、「レコードロック」プロパティは「しない」になっています。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

ボタンじゃなく詳細のクリックなの? これじゃ意図していないときにも走ってしまいそうですね で、管理番号というのが最初の質問の「機器管理ID」ですか? データ型は?

ayanohina
質問者

お礼

追加補足です。管理番号のデータ型はオートナンバーで機器管理IDは数値型です。よろしくお願いします。

ayanohina
質問者

補足

管理番号というのはメンテナンスの固有の番号でたとえば今日のこの機器の修理記録は管理番号1、別の機器の修理記録は管理番号2という感じです。機器管理IDというのは機器が多数あるため、機器について登録画面があり、その番号です。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

>詳細画面に移動させようとコマンドボタンをおいたのですが ここでどのような操作をしているのでしょう? それがないと回答できませんよ

ayanohina
質問者

補足

申し訳ありません。下記のように記述してメンテナンスフォームを開こうとしています。 Private Sub 詳細2_Click() On Error GoTo Err_詳細2_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(12513) & ChrW(12531) & ChrW(12486) & ChrW(12490) & ChrW(12531) & ChrW(12473) stLinkCriteria = "[管理番号]=" & Me![管理番号] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_詳細2_Click: Exit Sub Err_詳細2_Click: MsgBox Err.Description Resume Exit_詳細2_Click End Sub

関連するQ&A