• ベストアンサー

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

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

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

コマンドボタンのクリック時イベントに Docmd.Gotorecord Acnewrec Me!Id=Nz(Dmax("ID","取引先一覧"),0) +1 としてみてください。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

抜けてた。 DoCmd.GoToRecord acForm, Me.Name, acNewRec Me!ID = Nz(DMax("ID", "取引先一覧"), 0) + 1 に差し替えを。<(_ _)>

関連するQ&A

  • 【ACCESS】フォームのレコードソースのクエリを動的に書き直したときの、フォームの再描画

    ACCESS2002 帳票フォームのレコードソースにクエリを指定しています。 フォーム上のコマンドボタンを押したイベントで、その レコードソースとしているクエリのSQLを書き直しています。 問題は、その書き直したクエリをもとにして画面をもう一度 表示させなおしたい(リフレッシュさせたい)ということです。   docmd.close acForm,"フォーム名"   docmd.open "フォーム名" とすると、書き直したクエリの内容でフォームが表示されます。 フォームを閉じる→フォームを開くとしないで、フォームを リフレッシュさせる方法はないのでしょうか?

  • Access VBAで自動連番を振るには

    【テーブル名】T_株券管理 【フォーム名】F_株主入力 【フィールド名】株主ID(テキスト型)(主キー) フォームに入力する際にオートナンバーを使用せずに、 レコードが切り替わると「株主ID」が「00001」「00002」「00003」・・・・というように1づつ発番されるようにしたく、AccessVBAの本を読んだり、ネットでDmax等調べているのですが、必要な情報が探せずに困っています。 本当はオートナンバーでIDを振っても良いのですが、レコードの削除等行った時に歯抜けになってしまうので、うる覚えで申し訳ないのですが・・・確か、フォームのテキストボックスのプロパティ、コードビルダでVBを「レコードが移動した際に」→「株主IDが0の場合に”00001”を、0でない場合には既存の数値に+1した数値をテーブルT_株券管理の”株主ID”に入力する。」といった感じの記述がしてあったと思います。VB初心者なので、説明が上手くできずにすみません。 このような記述方法はありますでしょうか?

  • ACCESSのフォームでの入力について

    ACCESS2000を使用しています。初心者のほうです。住所録のテーブルを作って、作業用のフォームを表形式で作りました。そのフォームに宛名印刷するためのコマンドボタンを配置しています。フォーム上で一件入力し、そのコマンドボタンを実行するのですが、その時点ではレコードとして入力されていないようで、実行できません。フォームを一度閉じて、また開くと出来るようになります。1件のレコードをフォームから入力すると同時にテーブルへも保存されていくようにしたいのですが、簡単にやる方法はないでしょうか?

  • 文字を含むIDの自動採番

    Access2013を使っています。 IDはテキスト型で、 A00000000 っていう書式なんですが、 新規レコード作成時のイベントで、ID自動採番(連番をふる)をしたいのですが、下記だと最初の1レコード(A00000001)以降がエラーになってしまいます。 Format(Nz(DMax("ID", "T_テーブル名"), 0) + 1, "\A00000000" ) もちろん、すでにあるIDがA00000001なので、DMaxが使えないんですが、どうやって分けてやったら良いのかわかりません。 やりたい結果は、新規レコード作成時に、IDが"A"&"8ケタの最大値+1"が自動に振られて、テーブルのIDフィールドにA00000001、A00000002・・・とデータ保持したいのです。 説明が判り辛くて恐縮ですが、ご教示お願いします。

  • Access97:サブフォームを切り替え表示したい

    アクセスで仕事で用いられる専門用語の和英辞書データベースを作っております。 その辞書は用語の持つ意味や使われ方などから分類をしています。 分類一覧テーブルは分類ID,分類からなり、用語一覧テーブルは用語IDと用語からなります。 これらをつなぐのが和英辞書テーブルで、辞書ID,分類ID,用語IDからなり、 分類ID,用語IDはそれぞれ分類一覧テーブル,用語一覧テーブルのそれとリレーションシップを 組んでいます。 メインフォーム(既定のビュー=単票フォーム)には分類フィールドを作り、コンボボックスにします。 分類を選択したときまたはその横に「表示」ボタンを設置しておいてそのボタンをクリックしたときに 選択された分類に属する用語一覧がサブフォーム(既定のビュー=帳票フォーム)にリロードされてるように切り替えて表示させたいと考えています。 メインフォーム元:分類一覧テーブル,サブフォーム元:用語一覧テーブルにしたフォームは作成できました。 メインフォームのレコードを切りかえるとサブフォームも切り替わりますが、 コンボボックスの選択でサブフォームを切りかえ(たように見せ)る上記のようなフォームに このフォームから編集することはできるでしょうか? 無理なら新規にフォームを作りなおすとしてできるでしょうか? 自分の発想で2通りやってみましたが、いずれも失敗でした。 (詳しく書いたら文字数が800を超えたので省略します) テーブルの構成やリレーションを多少変えてもいいしフォームのレコードソースにクエリービルダを使ったりVBを組んでもいいので、メインフォームのコンボボックスの選択値によってサブフォームの表示を切り替える方法について教えて下さい。

  • ACCESS where条件式

    アクセス初心者です。 フォームで表形式の一覧「在庫一覧F」を作っています。 もうひとつ単票形式のフォーム「在庫表F」も作っています。 もとは同じテーブルのデータです。 表形式のフォームの一覧で、現在選択してるレコードの単票形式のフォームを開きたいのですがうまくいきません。 選択中のレコードをひらくというコマンドボタンを作成し、クリック時にマクロを割り当てています。 フォーム名:在庫表F ビュー:フォームビュー where条件式:Me.CurrentRecord=[Forms]![在庫表F]![ID] 以前マクロを使ってうまくできていたのですが、サーバーがこわれ作り直しています。どこを直したらうまくいくのでしょうか…。 どなたか教えてください。よろしくお願いします。

  • ACCESS2000のフォームについて

    フォーム(←単票形式の)のデザインビューで、ツールボックスから、コマンドボタンウィザードを使い、コマンドボタンを作りましたが、ウィザードの最後のボタン名を指定するところで、漢字変換ができず、困っています。 いつもひらがなにしか入力が出来ないのですが、ここで直接漢字入力にするにはどういう処置をすればいいですか。 それから、追加の質問ですが、 作ったコマンドボタン(←レコード削除用)で、レコードを削除しようとしたところ、「リレーションシップが設定されたレコードが、テーブルにあるため、レコードの削除や変更を行えません。」と、エラーメッセージが表示されます。 レコードをフォームから削除するにはどうすればいいですか。 (※無理にしたいわけではないが、そういう命令も勉強の一環でして見たいのです。) 宜しくお願いします。

  • [ACCESS]フォームで、レコードを抽出して編集するには?

    ACCESS2003、初心者です。 納品テーブルを作成して、それをフォームで入力しています。 フィールドは、 ID,製品名,セイヒンメイ,メーカー,仕入先,単価,在庫数,残高 です。 納品テーブルのレコードを元にフォームを作成したいのですが悩んでいます。 (1).納品テーブルから、表形式で商品レコードを並べて表示させる (2).セイヒンメイでグループ化。 (3).セイヒンメイを昇順で並び替え (4).在庫数、残高を編集 (1)~(4)の作業を行いたいのですが、いろいろ試した結果、うまくできません。 テーブル作成クエリ→実行→在庫フォーム開く(この場合のソース元はクエリ) のパターンで可能だったのですが、フォームを開いた時にグループ化や並び替えを行う方がスマートなので実現したいのです。 もしくは、フォーム上でコマンドボタンを押せばグループ化や並び替えができればそれでも構いません。 いろいろ調べて、SQL(GROUP BYやHAVING)を使わないと駄目なようですが、どのようなコードを書いたらよいのでしょうか?

  • アクセスのフォームで

    アクセスのフォームで、この様に、"品番"、"設備名"、"単価"、"担当者"のテーブル(1000レコードほどあります)のフォームがあります。 このフォームを開いた時には、1レコード目が表示されますが、下に一覧が全て表示(100以上は次のページ)され、検索フォームに品番、又は、設備名を入力すると、絞りこまれて表示される様にできますか? 又、下の一覧の担当者の右に"編集ボタン"を置きボタンを押すと、左のデータを編集できる様に(編集は上のフォームで行う)できますか? 説明がへたくそで申し訳ありませんが、誰か教えて頂けませんか? よろしくお願いします。

  • フォームのレコードソース(Access2000)

    質問させていただきます。 フォームの「レコードソース」でテーブルとクエリーのほかに、「SELECT テーブル名、フィールド名・・・」というのがあります。これもクエリーなのでしょうか? ちなみに、レコードソースの右にある「---」をクリックすると「SQLステートメント:クエリビルダ」というものが開きます(クエリー画面と同じ?)。 また、フォームのレコードソースはテーブル、クエリー、SOLステートメントのどれにすれば良いのでしょうか?

専門家に質問してみよう