• 締切済み

登録機能を作りたい

以前こちらの質問をして http://okwave.jp/qa2796766.html DMAXを使った利用者IDの最大値+1を求めることができました。 それを利用して登録フォームを作りレコードに登録していきたいと思います。 まず登録ボタンを押すと利用者IDの最大値+1されたIDが自動で出てきます 他のフォームは空の状態で入力しその登録フォームに作った登録ボタンを押すとレコードが追加されるようにしたいです。 どういう手順を取ればこういった操作ができますか? よろしくお願いします

みんなの回答

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

私の勘違いなのかも、知れませんけど・・・ Option Compare Database 'フォーム上の変数使用 Dim usUPDATE As Boolean Private Sub Form_AfterUpdate() ' フォームの更新後処理(レコードに書込み後の処理) usUPDATE = False End Sub Private Sub Form_BeforeUpdate(Cancel As Integer) ' フォームの更新前処理(レコードに書込む前の処理) If Not usUPDATE Then Cancel = True End If End Sub Private Sub Form_Open(Cancel As Integer) ' フォームを開いた時の処理 usUPDATE = False End Sub として、フォームの登録ボタンを押した時、 usUPDATE = True を入れて、登録ボタンを押した時以外、フォームを閉じれない、更新できないようにする事が可能ですが・・・ 登録フォーム上のレコードに対しての話ですので、「他のフォーム」に書き込んだデータを登録ボタンで登録できるようにするとなると、他の方法を検討する必要があるかも知れません

noname#135452
質問者

お礼

参考にさせていただきます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • DMAXを使って登録ボタンを作りたい

    accessを使い現在ある利用者IDの最大値をDMAXで検出し そのIDに+1をして登録を行いたいのですがまったくできません・・・ 現在最大のIDがZZZZ4000だったとすると自動検索してZZZZ4001で登録できるように。 riyou_id = DMAX("riyou_id", "riyou_infotb")+1 とすると「型が一致しません。」となってしまいます。 できれば、最大値+1のIDを検出し登録用のフォームを表示し、新しいレコードを出して登録ができるまでの書き方を教えてください。よろしくお願いします。

  • Accessフォームからのデータ登録について

     表題ではなんのことかわわからないと思います。 詳しく説明するのでみていただけますか。 顧客テーブルにレコードを追加、変更するため下記のようにしました。 (1)メインメニューで「顧客登録」ボタンをクリックする。 (2)顧客登録フォームを開く。この際埋め込みマクロのWhere条件式で [顧客コード]=[顧客コードは?]と指定する。 (3)該当のレコードがあればレコード内容が顧客登録フォーム上に表示される。   該当のレコードがなければ(新規登録)空の顧客登録フォームが表示される。 この時、フォーム上の顧客コード欄もブランクのため再度顧客コードを入力する ことになります。 二度手間を避けるため、一度入力した顧客コードを空のフォーム上に表示させるには どうすればいいでしょうか。 それから別の質問になるかもしれませんが、当初は(2)では単に空のこ登録フォームを 表示させ、顧客コードを入力しEnterキーを押した時に(3)に進むようにするつもりでした。 (通常はこちらのやり方かと思いますが) しかし(2)から(3)へ進む際の処理の仕方がわからず最初に記したやり方にしました。 こちらのやり方でするにはどうすればよいかも教えていただければ幸いです。

  • 【PHP】会員登録機能構築の流れ について

    初めて質問させていただきます。 よろしくお願いします。 現在、会員登録のプログラムを構築をPHPで進めています(構築をメインで進めているのは自分ではありません)。 まずユーザーに会員IDとなるメールアドレスを入力していただき、「送信」ボタンをクリックすると、そのメールアドレスに対して本登録用の入力フォームへのリンクを張ったメールを自動送信します。 (同時にMySQL DBにレコードを一つ作成、入力されたメールアドレスが会員IDとして保存される) そしてユーザーは本登録用のフォームから登録情報を入力していただき、入力後に入力内容を確認するページを表示し、間違いがなければ会員登録完了、という流れです。 (登録完了時に最初に作られたレコードに本登録用フォームで入力されたデータが保存される) 最初に入力していただいたメールアドレスに送信する自動送信メールに貼るリンク先の本登録用フォームについて、自動送信メール内のリンクを開いた際に「最初に入力していただいたメールアドレスが会員IDとして登録されている状態」で表示するように考えています。 仕組みは某グルメクーポンサイトのホッ◯ペッパーの会員登録の流れにとても似ています。 今回質問させていただきたいのは、 「上記のような流れのプログラムを作る場合、どのような手順でプログラムを作っていけばいいのか」 ということです。 私自身もサイト構築の経験がなく、PHPのソースを見てもまだ調べながら少しずつ理解していくのがやっとです。。 今構築をメインで進めておられる方も、PHPは初心者なので手こずっているところです。 コードの書き方もまだろくにわかりませんが、まずは「どのような流れで構築していくのか」「どのように調べていくのか」というところを理解して、なんとか自分たちでコードの書き方を勉強していきたいので、是非教えていただければ、と思います。 質問の仕方もとても下手で申し訳ありません。 困っています。 よろしくお願いします。

    • 締切済み
    • PHP
  • 文字を含む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・・・とデータ保持したいのです。 説明が判り辛くて恐縮ですが、ご教示お願いします。

  • Access コンボボックスへのレコードの更新

    サブフォームにコンボボックスを設置しており、リストに無い場合に追加登録するためのフォームを開くボタンを作ってあります。 このボタンからフォームを開き追加して閉じたあと、メニューのレコードの更新をしないと元のサブフォームのコンボボックスに反映されません。 自動ですぐに反映させる方法、またはレコードを更新するボタンの設定方法を教えて下さい。 宜しくお願い致します。

  • Accessでメイン、サブフォームへの入力について

    accessほぼ初心者です。 取引先の会社情報を管理するために、access2007で顧客管理を作成しています。現在、取引先本社情報とその支店情報を登録するフォーム「会社登録フォーム」を作成していますが、次のようなことで困っています。 <問題としていること>: 「サブフォーム」をクリックした瞬間に、テーブルにレコードが追加されてしまう。 <改善したいこと>: 本社テーブルの会社名が未入力ならば、上記の操作でレコードを追加しない。(会社名に主キーは設定していません。) <会社登録フォームの環境>: 会社の本社情報をメインフォーム、その会社の支店情報をサブフォームに、単票形式のタブコントロールで複数画面にして支社ごとに分けて入力できる登録フォームを作成しました。本社テーブルの会社IDを主キーに、支店テーブルの支店IDを主キーにしてリレーションシップを設定しています。 <会社情報の入力に関して行っていること>: ・メインフォームに「新規」「更新」「削除」ボタンを設置。 ・新規ボタンでメインフォームの「会社ID」に自動採番。 ・会社(本社)名がないと困るので、未入力の状態で「新規」「更新」及び「サブフォーム」をクリックされた際に「会社名が未入力です。」のメッセージを表示され「OK」で元の状態にもどります。 ・会社(本社)名が入力済みならば、「更新」ボタンで、メッセージ「OK」「キャンセル」が表示され、「OK」ならば本社テーブルにレコードが追加され「キャンセル」ならばそのままの状態になります。 上記の<問題としていること>の補足ですが、新規ボタンで新規登録フォームに会社IDが自動採番(末番)されるのですが、「会社名」を入力せず、先にサブフォームの支店情報から(タブ名「支店(1)」)入力しようとした場合、「会社名が未入力です。」のメッセージを表示されますが、この時点で本社テーブルに、この採番でレコードが追加されてしまいます。入力者がそのまま会社名(本社)から入力するも、途中でキャンセルした場合、再度新規登録をする際、登録フォームの自動採番がキャンセルされた採番の次の番号になります。 キャンセルされた会社情報空白のレコードができるということになります。これを回避したいのです。 出来るだけ詳細をとおもい説明が長くなりましたが、よろしくお願いいたします。

  • Accessのフォームでデータの更新や、新規登録ができません

    Accessのフォームについての質問です。 単票形式のフォームを作成したところ、内容の更新もできず、新しいレコードを追加するためのボタン(▲と*のボタン)も無効になっているので、レコードの新規追加ができません。 フォームに入れるフィールド(氏名や商品番号など)を変えると、上記のような状況にはなりません。 何がまずいんでしょうか?

  • ACCESSでのデータ削除について

    XP&ACCESS2003 メインフォーム/サブフォーム形式のフォームで、受注番号で連結しています。 メインフォームが受注、サブフォームが受注明細です。(1対多) サブフォームに削除ボタンをつけて、受注明細のレコードを1件削除するようにしています。以下が削除ボタンのクリック時のプロシージャーです。 DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 クリックした段階で、クエリーで見てみると確かに削除されています。 ただ、フォームを再度開くと空のデータが追加されています。(=削除前とレコード件数は同じ) このサブフォームでは、レコード追加時にフィールド「行」に行ナンバーを入力させるために、隠しで [行NO]テキストボックスを持たせて、自動的に行NOをいれています。 サブフォームの挿入前処理は以下です。 [行NO] = Val(DMax("[行NO]", "Q_受注_工程_明細_行NO") & ".0") + 1 削除してもこの行NOが自動的に別のレコードを追加しているようです。 何か、よい方法をご存知の方、よろしくお願いします。

  • (ACCESS)連番取得について

    アクセスで顧客管理をしています。 DMax関数を用いて、レコードを追加する度に自動で連番を振る設定に したいと思っていますが、上手くいかないため質問させてください。 【テーブル名】T_顧客一覧 【入力用のフォーム名】F_顧客登録 【連番を入力させたい項目(フィールド名)】No(テーブルでは主キーに設定) とし、フォームの”No”の既定値に   =DMax("No","T_顧客一覧")+1 と入力するのですが、フォームには1としか表示されません。 非常に初歩的な質問だとは思うのですが、 何か原因として考えられることがありますでしょうか? 情報が足りないようでしたら補足させていただきます。 よろしくお願いします。

  • サブフォームをブランクで開きたい(値の代入)

    現在、サブフォームを開く時に値の代入の後、DMax関数で+1をして最後のレコードに+1したIDをマクロで行っていますが、VBAでできないでしょうか? 1.サブフォームを開く Cmd Open フォーム名 2.値の代入で(””)をいれフォームをクリア 3.値の代入でID=DMax"テーブル”+1 良い知恵があれば教えて頂けないでしょうか マクロにあまり頼りたくないので宜しくお願い致します。

専門家に質問してみよう