• ベストアンサー

アクセス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

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

    アクセスのフォームで一覧を作っています。その中の1つをクリックすると詳細画面に移動させようとコマンドボタンをおいたのですが、下記のエラーが出ます。全く文章の意味が分からず、今後どうしていいのか前に進めません。どなたか教えてください。よろしくお願いいたします。 エラーの内容です↓ テーブル’A’はほかのユーザーが排他的に開いているか、既にユーザーインターフェイスを介して開いているので、プログラムによって操作することはできません。

  • アクセスコマンドボタンで登録。

    アクセスのフォームで、コマンドボタンをクリックして、初めて登録ができるというのはどのようにすればいいのでしょうか?普通、登録画面といったら、テーブルを基にしてフォームを作成していいのでしょうか?それとも非連結にしてフォームからフォームへ登録という風にするものなのでしょうか?フォーム上のテキストボックスに一つでも文字を入力すると、×ボタンで消しても、データがテーブルに入っていってしまいます。これを防ぐことはできるのでしょうか?保存でもいいですし登録でもいいのですが、コマンドボタンを作成して、それをクリックして初めてテーブルにデータが入っていくという風にしたいのですが。どなたか分かる方居ましたらご教示ください。宜しくお願いします。

  • Access2003でフォームにあるコマンドボタンで更にフォームを開く

    Access2003でフォームにあるコマンドボタンで更にフォームを開くときのVBA記述で困っています。 Access2003で社員情報管理のデータベースを作成中です。 社員の情報を入力するにあたり、【基本情報】と【詳細情報】とでフォームを分けてあり、【詳細情報】を入力したい場合は、"基本情報フォーム"にあるコマンドボタンをクリックして"詳細情報フォーム"を開くようになっています。 この際、"基本情報フォーム"で開いている社員の【社員番号】を"詳細情報フォーム"の【社員番号】欄にも自動的に表示させるため、以下のようなVBAを記述しました。 Private Sub コマンドボタン_Click() DoCmd.OpenForm "詳細情報フォーム" Forms![詳細情報フォーム![社員番号].DefaultValue = Me![社員番号] End Sub 【社員番号】は7ケタの半角英数で、社員によって、数字だけの場合と、英数混じっている場合とがあります(データ型はテキスト型にしてあります)。 困っているのは、 1.上記を実行した際に、数字だけの社員番号は問題ないのですが、英数混じりの場合だと"社員番号"テキストボックスが「#Name?」という表示になってしまう 2."基本情報フォーム"のコマンドボタンをクリックして新規の"詳細情報フォーム"を開き(社員番号のみが反映され、他の項目は空欄の状態)、詳細情報を入力→保存したあと、別の社員番号で"基本情報フォーム"を開き、コマンドボタンで"詳細情報フォーム"を開くと、前に入力した社員の情報が出てきてしまう。 (つまり、"詳細情報フォーム"のもととなるテーブルに、1行でもレコードがあると、それが出てきてしまう。) 【詳細情報】は、 1.データを入力する社員としない社員とがいる 2.新規でレコードを作成する場合と、既存のレコードを上書きする場合とがある ので、もととなる"詳細情報テーブル"にその【社員番号の】レコードがなければ新規入力画面を、レコードがあればそのレコードを呼び出す形にしたいのですが、英数混じりの表示の件も含め、どうすれば、正しく表示されるか教えていただきたいです。 ぜひぜひよろしくお願いします。

  • アクセスのコマンドボタンについて

    アクセスについて教えて下さい。 コマンドボタンで、フォームのデータをワンクリックで開くように設定したいのですが、コマンドボタンウィザードを使って、 フォームの操作→フォームを開く→フォームを指定 という操作でボタンを作りました。 ですが、ボタンをクリックして操作しようとすると、 「イベントプロパティに指定した式 クリック時 でエラーが発生しました:名前が適切ではありません:(フォーム名)_Click   *マクロ名、ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されています。   *関数、イベント、マクロの評価でエラーが発生しました。」 というメッセージが出てきて、フォームを開くことができませんでした。 ウィザードだけではフォームを開くボタンを作成することはできないのでしょうか? 何か対処があれば教えて下さい。 よろしくお願いいたします。

  • あくせすのフォームでのコマンドボタンについて。

    アクセスのフォーム上の「登録」というコマンドボタンをつくりたいのですが、これをクリックすると次のレコードの入力画面に移動させるにはどうしたらいいのでしょうか。よろしくお願いします。

  • アクセスでの登録ボタンでの処理について。

    アクセス初心者です。新規登録用のフォームを作成しています。普通のフォームはマウス等の操作で前後の情報が見れますよね?(100件、情報が入力されていたら、100件見れますよね。)非連結で作成して、クエリに飛ばして、登録ボタンを押したものだけがテーブルに入っていくという構造はできるのでしょうか?ちなみにクエリから引っ張ってきた検索画面はフォームにあります。今の作成に仕方で、登録ボタンをクリックしても、テーブルに入っていきません。新規登録用フォームはMainMenu上に新規というボタンを設けてあって、それをクリックしたら新規登録用画面が開くという風に作りたいのです。テーブルに情報を入れていくのは非連結じゃ無理なんですか?どなたか分かる方いましたらご教示ください。よろしくお願い致します。

  • Access2002:コマンドボタンがうまく設定できません

    使い始めてから2週間目の初心者です。よろしくお願いします。 コマンドボタンウィザードでフォーム上にコマンドボタンを作成したのですが、クリックしても反応しません。 初めは問題なく作成できたのですが、突如としてうまく動作するボタンが作成できなくなってしまいました。 ウィザードで作成した「レコードの検索」ボタンですら無反応です。 あるフォームのイベントプロージャ(?)は以下のようになっています。 (★はコメントです) Option Compare Database Private Sub テスト15:09_Click() End Sub Private Sub 部番一覧→部番詳細フォーム_Click()★←正しく動作しているボタン★ On Error GoTo Err_部番一覧→部番詳細フォーム_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "部番詳細表示" stLinkCriteria = "[部番]=" & "'" & Me![部番] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_部番一覧→部番詳細フォーム_Click: Exit Sub Err_部番一覧→部番詳細フォーム_Click: MsgBox Err.Description Resume Exit_部番一覧→部番詳細フォーム_Click End Sub←★この下に区切り線が表示されません★ Private Sub テスト15:09_Click()★←無反応のボタン。文字色赤になっています★ On Error GoTo Err_テスト15:09_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_テスト15:09_Click: Exit Sub Err_テスト15:09_Click: MsgBox Err.Description Resume Exit_テスト15:09_Click End Sub 単純ミスだと思うのですが、原因がわかりません。 どなたかわかりやすく教えいただけないでしょうか。ちなみにVBの知識は皆無です。よろしくお願いします。

  • access2000でのフォームの詳細ボタンについて

    access2000を使用して、顧客のカナを入力すると該当する顧客が抽出される一覧を作成いたしました。 作り方は、 メインフォームに顧客一覧のサブフォームを置きました。 検索カナ入力用のテキストボックスを置き、その横に検索ボタンを置いています。 ここまでは順調でしたが、サブフォームに置いた詳細ボタン(指定した顧客の詳細の単票フォーム)が作動しなくなりました。 サブフォームだけで実行すると表示されます。 メインフォームでボタンを押しても作動しません。 行き詰っています。どなたかご教授下さい。。 お願いします。

  • Accessユーザーフォームでコマンドボタンのcaptionについてで

    Accessユーザーフォームでコマンドボタンのcaptionについてですが Aテーブルを基に表記式でフォームを作成し、コマンドボタンを配置します。 この際、コマンドボタンのcaptionをAテーブルのフィールド値を表示したいのですが 可能でしょうか? フォームを開く際に Private Sub フォーム_Load() Me!コマンド1.Caption = Me![フィールド1] End Sub とイベントを発生させましたが、全てのボタンのCaptionがAテーブル1行目、 フィールド1の値で表示されてしまいます。 Dlookupを使用しても結果か同じでしたので、 フォームをLoadした時のMe![フィールド1]の値がAテーブル1行目の値であり その値でCaptionが設定されていであろうことはなんとなくわかるのですが 何をどうすればいいか行き詰ってしまいました。 どんなやり方があるのかお教えください。

  • アクセス2010フォーム上で自動でIDを振る

    アクセス2010 初心者です。わかりやすく教えていただければ幸いです。 テーブル 取引先一覧に取引先のID(数値型)を4ケタで振りました。 1001~1400...と振っています。 取引先一覧テーブルをもとに、新規取引先登録フォームを作成し ここに、コマンドボタン押したら、新規レコードを追加して、新規IDを振る方法を教えてください。 色々、検索して調べたのですが上手くいきませんでした。 SQL、VBのコードはまだ理解できていません。 イベントのビルドを最近いじりはじめました。 宜しくお願いします。

専門家に質問してみよう