プロが教えるわが家の防犯対策術!

Access素人です。

車の管理で車番から管理番号を自動入力したいです。

tb所有者(データ入力済)
管理番号 名前 電話番号 車番1 車番2 車番3 車番4

tb使用(都度入力)
管理番号 車番1 車番2 車番3 車番4

があり

tb使用入力フォームより 車番1(テキスト1) 車番2(テキスト2) 車番3(テキスト3) 車番4 (テキスト4)

を入力するとtb所有者のデータから管理番号(テキスト5)が自動に入力できるようにしたいです。

また管理番号の該当がなければないまま車番だけテーブルに入力してきたいです

よろしくお願いします。

A 回答 (6件)

#2に少し追加です。



If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
MsgBox rs!管理番号
Forms!F検索!テキスト5 = rs!管理番号
Exit Do
rs.MoveNext
Loop
End If

のところを、

If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
MsgBox rs!管理番号
Forms!F検索!テキスト5 = rs!管理番号
DoCmd.RunCommand acCmdSaveRecord
Exit Do
rs.MoveNext
Loop
End If

のようにしてください。

DoCmd.RunCommand acCmdSaveRecord

を追加します。これでレコードが確定されます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

できました。

次に進めます。

お礼日時:2010/12/02 08:36

所有者テーブルに検索ようにナンバープレートがあった方が条件1項目です。

更新クエリで準備できます。
画面入力したら項目を連結してどのナンバープレートを見つけたらよいか決定しその値でもって所有者テーブルを検索。

選択クエリやDLOOKUP関数を見ておく。


画面入力時の随時でなく、クエリ等で複数レコードまとめて取得処理できることも考えておくことをオススメします。
    • good
    • 0

#2です。


tb使用(都度入力)の管理番号には主キーを設定
しないでください。質問の内容だと、tb使用
の管理番号にはデータが入る場合と入らない
場合があります。管理番号に主キーを設定
しておくと、データが無い場合にはシステムエラー
が出ます。
したがって、tb使用に何らかの番号が必要な
場合はtb使用に、
ID:オートナンバー
を設定しておいてください。

このIDはフォームに表示する必要はとくに
ありませんが、必要ならば表示しても
いいです。
    • good
    • 0

ANo.1です


管理No.は車両毎に付けるのですよね
管理No.に何か意味お持たせたいのでしょうが、重複のないNo.にして
車両を検索するときは他の項目を参照するようにしてシステムを単純化しては
前回提案しましたが、車両ID(オートナンバー)を管理No.(主キー)とします。
※オートナンバーに設定するとCPが勝手に管理(車両を追加登録する都度 連番設定)
してくれます。

TB車両(管理No.、登録No.、所有者ID、車両名、年式、排気量、車両タイプ…)

補足 登録No.は陸運局でユニークなコードを設定してくれるのでこれを主キーに
して、管理No.を改めて用意する必要もないと思いますが
    • good
    • 0

一応、車番1、車番2、車番3、車番4を入力した場合、


その組み合わせに該当する管理番号は1件以下、すなわち
複数の管理番号は存在しない、という設定にしておきます。

以下で設定してみてください。

(1) クエリの作成

名前:Q検索

SELECT tb所有者.管理番号, tb所有者.名前, tb所有者.電話番号, tb所有者.車番1, tb所有者.車番2, tb所有者.車番3, tb所有者.車番4
FROM tb所有者
WHERE (((tb所有者.車番1)=[A1]) AND ((tb所有者.車番2)=[A2]) AND ((tb所有者.車番3)=[A3]) AND ((tb所有者.車番4)=[A4]));


「デザインビューでクエリを作る」を選択し、
「テーブルの表示」を閉じ、SQLビューを選択し、
上記のSQL文を貼り付け、「Q検索」という名前で
登録します。



(2) フォームの設定
フォームの名前はF検索とします。必要に応じて
変更してください。変更する場合は以下のプログラム
の中も変更してください。

DAOを使用しているので、コード表のツール→参照設定
を選択し、Microsoft DAO xxx Object Library を
選択してください。xxxは数値で3.6のようなものです。
これの一番数値のたかいものを選択してください。
もし、Microsoft AvtiveX Data Objects Library xxx
が選択されていたらチェックをはずしてください。

形式は単票でも帳票でもいいのですが、一応帳票形式とします。

フォームにボタンを一つ設定します。そのボタンのクリックイベントで、

Private Sub コマンド0_Click()
Dim strSQL As String
Dim strNUM As String
Dim qdf As QueryDef
Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set qdf = db.QueryDefs("Q検索")

qdf.Parameters("A1").Value = Forms!F検索!テキスト1
qdf.Parameters("A2").Value = Forms!F検索!テキスト2
qdf.Parameters("A3").Value = Forms!F検索!テキスト3
qdf.Parameters("A4").Value = Forms!F検索!テキスト4

Set rs = qdf.OpenRecordset

If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
Forms!F検索!テキスト5 = rs!管理番号
Exit Do
rs.MoveNext
Loop
End If

qdf.Close: Set qdf = Nothing
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub

ボタンをクリックすると、カーソルの当たっている
行の管理番号を入れるテキストボックスにデータが
入ります。なければ何もしません。
    • good
    • 0
この回答へのお礼

早々の回答ありがとうございます。

やってみます。

お礼日時:2010/11/30 10:11

何をどうしたいのか理解しかねます。

補足お願いします。
もしかしてタクシー会社の車両管理?

1.TB所有者とは顧客等の個人情報でしょうか
2.管理番号とは何を管理するもので、どのような規則のものですか
3.名前、電話番号はTB所有者内のフィールドの一つですか
4.一つの管理番号で4台の車を管理するのですか

-------------------------
思い違いがあるとは思いますが自分なら次のようなテーブル設計をします。
()内はフィールド名

TB所有者(所有者ID、所有者名、住所、電話番号、…)
TB車両(車両ID、所有者ID、車両名、年式、排気量、車両タイプ…)
TB使用(使用ID、車両ID、使用日付、使用始め時刻、使用終了時刻…)

TB所有者.所有者ID、TB車両.車両ID 及び使用IDはオートナンバー形式の主キーとし
TB所有者.所有者IDとTB車両.所有者IDで両テーブル間にリレーションシップ
の設定をします。

この回答への補足

説明不足ですいません。

   車番1 車番2 車番3 車番4とはナンバープレートです。

例  品川   300   あ   1234   

車両を何千台と管理しています。

ナンバープレートから管理番号主キーを自動に入力できないかと。

ナンバーから管理番号(主キー)を自動入力させたいです。

補足日時:2010/11/30 10:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!