• ベストアンサー

アクセスで受付番号簿を作ろうと思いましたが上手く行かなくて考えましたが

アクセスで受付番号簿を作ろうと思いましたが上手く行かなくて考えましたが、こんなふうに作ってみましたが評価をお願いします。まず、アクセスで最初の番号をテーブルに入力します。その番号をエクセルにエックスポートしエクセル上で番号一覧(A1+1として)を作ります。そのエクセルの表をアクセスにリンクさせ、その受付番号のところにデータを入れた場合は、入れた最後のデータの受付番号の後をフォームに表示させるようにしました。こうなふうでどうでしょうか? 自分としては、モットアクセスの機能の中で遣りたいのですが、教えて頂けないでしょうか。 お願いします。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

#2です。少し訂正。 (2)で、 >フォームにテキストボックスを一つ作り、名前をT受付番号 としていますが、「T受付番号」を「tx受付番号」として ください。 ついでに、T番号の番号フィールドの初期化の方法を一つ 追加しておきます。 同じフォームにボタンを一つ追加し、名前をcmdリセット とします。次に以下のコードをコード表に貼り付け、 保存してください。 Private Sub cmdリセット_Click() Dim db As Database Dim rs As Recordset Dim varInput As Variant Set db = CurrentDb Set rs = db.OpenRecordset("T番号", dbOpenDynaset) If MsgBox("受付番号を初期化しますか?", vbYesNo) = vbYes Then If rs.RecordCount > 0 Then If MsgBox("現在の受付番号は" & rs!番号 & "です。次回表示する番号を入力してください", vbOKOnly) Then varInput = InputBox("次回表示の受付番号の入力", , "数値を入力してください。") If Not IsNull(varInput) Then rs.Edit rs!番号 = varInput rs.Update End If End If Else MsgBox ("T番号の番号フィールドが初期設定されていません。一度、0で初期化します。") rs.AddNew rs!番号 = 0 rs.Update End If End If rs.Close: Set rs = Nothing db.Close: Set db = Nothing End Sub これで、任意の番号から始めることができます。 テーブルに最初の番号がまだ設定されていない ときは一旦、0を設定します。1から始めたいときは、 もう一度クリックして1を入力してください。 コードにインデントをつけていないので 分かりづらいかもしれませんが、適当に インデントを設定してください。

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

その他の回答 (5)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

#4で追加したT番号の番号フィールドの初期化の コードの中で、 If Not IsNull(varInput) Then としているところを If StrPtr(varInput) <> 0 Then に置き換えてください。InputBoxを表示したとき キャンセルを選択するとエラーが出てしまうので 上記のようにします。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.5

>うまく表示してくれません。一応動いているようですが。 動いているということは、T番号の番号フィールドは 更新されてカウントアップしている、ということと 思います。 表示の問題みたいですが、#4でも述べたように テキストボックスの名前を tx受付番号 として ください。テキストボックスのプロパティシートを 表示し、名前のところを tx受付番号 とします。 たぶん、この部分を訂正すれば表示されると 思いますが。 エラーは出ていませんか。コード表の一番上に Option Compare Database Option Explicit のように、Option Explicitがなければ、これを 追加してコンパイルしてみてください。

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

受付番号が 例えば 1日のうちで1から付番し、翌日にはまた1からクリアする、 1日に使われる最大値の目安が決まっている、 というのであれば、 0001 使用 0002 未使用 0003 未使用 ~ 0099 未使用 0100 未使用 というように100個のレコードを作り 「次は0002番を使う」「0003番を使う」という具合に 値入力でなく値選択していく仕組みができます。 これならVBA使うこと少なくACCESSだけでできます。 普通はVBA使って+1しながら「採番」です。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

Accessらしい、ということでAccessだけの 方法はいろいろですが、番号を採番する方法の 一つ。 (1) T番号: 番号(数値型):主キーは設定しない。 というテーブルをつくります。 (2) フォームにテキストボックスを一つ作り、名前をT受付番号 とし、ボタンを一つ作り、名前を仮にcmd番号表示とします。 フォームのコード表を開き、コード表のツール→参照設定 を開き、Microsoft DAO xx Object Library にチェックを いれます。xxは3.6などの数値です。このとき、 Microsoft ActiveX Data Object xx Library にチェックが 入っていたらチェックをはずしてください。 以上の操作をしてOKを押し、参照設定を閉じます。 次に、以下のコードをコード表に貼り付け、保存してください。 Private Sub cmd番号表示_Click() Dim db As Database Dim rs As Recordset Set db = CurrentDb Set rs = db.OpenRecordset("T番号", dbOpenDynaset) 'フォームのテキストボックスに番号を表示 Me!tx受付番号 = rs!番号 'T番号の番号フィールドの更新 rs.Edit rs!番号 = rs!番号 + 1 rs.Update rs.Close: Set rs = Nothing db.Close: Set db = Nothing End Sub (3) テーブル T番号の番号フィールドは初期値は 0が表示されていますが、一旦、0を入力し レコードを確定しておいてください。 0だと最初にフォームに表示される番号は0ですが、 1としておけば最初に1と表示されます。 以上で、設定は終了です。フォームのボタンを 押していけば、番号が表示されます。それに つれてT番号の番号フィールドの番号もカウントアップ されていきます。 いろいろ工夫してみてください。

kawaids
質問者

お礼

piroin654有難う御座いました。早速挑戦しましたが、うまく表示してくれません。一応動いているようですが。どこかが違っているのか、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • rukuku
  • ベストアンサー率42% (401/933)
回答No.1

こんばんは フィールドのデータ形式にオートナンバーがあるのでそれを利用する方法が考えられます。ただし番号をリセットすることは出来ません。 毎日1番から始めたいという場合には、VBAになると思います。 「今日の最大値+1」という形で求めることが出来ます。

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

関連するQ&A

  • ACCESSで行番号はつけられないの?

    ACCESSにおいて、テーブルにおけるデータ一覧表に行番号をつけてプリントアウトしたいのですが、どうしたらよいのでしょうか。 また、クエリでのデータ一覧表にも行番号は独自に作れるのでしょうか。おしえてください。

  • Access フォームからの入力結果をテーブルにすることはできない?

    Access フォームからの入力結果をテーブルにすることはできない? 使用しているのはWindows XP、Access 2003です。 とある調査結果をデータベース化する仕事を与えられています。 データ1件あたりの構成要素を一目で見れるようにするために「こういうレイアウトのフォームを作って」と上司からリクエストが出ています。 まず、今手元に集まっているデータについては、 Excelで一覧表作成 → Accessにインポートしてテーブル作成 → オートフォームでフォーム作成し、デザインビューでレイアウト変更 というふうにして、上司から言われたフォームは作りました。 今後、データは増えていくので、作ったフォームから新たにデータの追加をしていくことになるのですが・・・。 フォームからデータを追加しても、元となったテーブルにはリンクしませんよね? とすると、データを追加した結果をテーブルにしたい場合はどうしたらいいのでしょうか? 今度は、そこからクエリを組む必要も出てくるため、テーブルにしたいのですが・・・。 Accessについては、以前勤めていた会社の研修で習っただけで詳しい使い方をずいぶん忘れてしまっています。今回、自分なりにいろいろ調べてはみたのですが、よくわかりませんでした。 もしかしたら、Accessの使い方を基本的に間違っているでしょうか・・・ よろしくお願いします。

  • Access 検索フォームの作り方について

    Accessで受付リスト作成しました。 *受付一覧テーブル:データはここに保存 *入力フォーム:データはここから入力 これとは別に、検索フォームを作りたいのです。 フォームのヘッダーにテキスト(氏名を入力)とトグルボタン("検索開始")を作って、 受付一覧テーブルにあるデータを入力フォームと同じ形式で呼び起こしたいのです。 初心者のため、こんな簡単な質問をして申し訳ございません。 ただ、1点気になるのが、テキストには全くの同一人物のデータが複数あります。 (例) 受付日    氏名 2005/11/2   山田 太郎 2006/02/5   山田 太郎 2007/10/1   山田 太郎 この複数のデータを受付日直近のものから順呼び起こすことは可能でしょうか? 難しいの場合は、単純に検索フォームの作り方をお教えいただけますと大変助かります。 何卒よろしくお願いいたします。

  • ACCESSについて

    今、アクセスとVBAを勉強しています。 そこで今壁にぶつかっているのはどこまでACCESSのみで出来て 何が出来ないのかということがイマイチよくわかりません。 たとえば、1のテーブル、会員番号テーブルを作成します。 フォームより会員番号を入力して 同じフォームにある会員名を表示したい とする場合、アクセスのみの機能で出来ますか? データを連続して表示させる機能ではありません。 検索画面に検索ボタン作成しなくても可能ですか? 初歩の質問ですみません 詳しい方よろしくお願いいたします

  • アクセス初心者ですが困っています。

    アクセスで名簿一覧を作成したいと思っています。 テーブルで1人につき50項目のデータを打ち込んでいます。 それをフォームの表形式で名前と識別番号を表示したいです。 (項目が多いので見やすくするため) フォームの表形式の左側にボタンを置き各詳細データを単票形式 で見れるようにしたいのですがうまくいきません。 現状として、ボタンを押して単票形式のデータを開くことは、でき たのですが表形式のボタンと単票形式のデータが連動しておらず、 ボタンを押すと一番最初の人物のデータしか出てきません。 どなたかアイデアのほうをご教授お願いします。

  • Access2000のフォームで番号を入力するとその他の情報が表示されるようにするには?

    入力フォームで番号を入力すると、名前などが同じフォームに表示される。 というのを作っているのですが。 テーブル1:ID・番号 テーブル2:番号・名前など(エクセルとリンク) クエリーで番号を1→2と繋ぎ、番号はテーブル2を使用。 (1)テーブル1が空欄だと何も表示されない。 (2)テーブル1に入力すると表示されるが、フォームで番号の入力はできない。 (3)新しいレコードも作製できない。 数年前に似たようなものを作った筈なのですが、そもそも出来ないのでしょうか。 宜しくお願いします。

  • Access2000でのExcel行の削除法

    Access2000でPC貸し出しの受付けシステムを開発中ですが、テーブルにリンクされたエクセルのシートがあります。 ある座席番号を入力して貸し出し中であれば貸し出した時に入力したレコードがテーブルから削除されるようになっているんですが、リンクテーブルのためAccessでレコードを削除できないと判明しました。そこでAccessからExcelのレコード(行)を削除するにはどのようなコードになるか教えていただけませんでしょうか? 説明が不十分なら補足をお願いします。

  • アクセスのクエリで更新できるようにしたいんですが、

    アクセス2000を使っています。クエリから、作ったフォームを更新したいのですが、できません。どなたか教えて下さい。 二つのテーブルがあります。 ・テーブル1=顧客番号、顧客名、初来店日、来店日2・・・ ・テーブル2=顧客番号、顧客名、アンケートの有無、カードの有無・・・ というようなもので、エクセルから外部データの取り込み→テーブルのリンクで作ってます。 この二つのテーブルから ・クエリ1=顧客番号(テーブル1)、顧客名(テーブル1)、初来日店(テーブ ル1)、アンケートの有無(テーブル2) を作り、これをもとにフォームを作ってフォーム上でアンケートの有無を更新できるようにしたいのですが・・・。 初心者で説明も上手くできなくてごめんなさい。 宜しくお願いいたします。

  • ACCESS 2003について

    エクセルのデータをACCESSのテーブルにインポートし、そのデータをフォーム上で閲覧することは可能でしょうか?

  • ACCESSとEXCELの相互リンク

    EXCELデータをACCESSテーブルにリンクさせることは一般的ですが、ACCESS上のテーブルデータをExcelデータにリンクさせる方法はありませんか。?