• 締切済み

アクセスでSQLを実行させて値をとりたい

masterテーブルに管理noをキーとしてデータが入っています。 管理noは完全に連番になっておらず、ただ新しく追加するものは 最大+1の番号を割り振るようにしようと思っています。 そこで新規追加のフォームを開くと管理noの欄に最大+1の番号が 表示され変更出来ない設定にします。 SQLで書くと select max(管理no)+1 from master でしょうか。 この命令を実行させて返ってきた数字を使いたいのです。 SQLを実行させる為の変数宣言の辺りから詳しくお願いします。 ちなみにMDBもフォームも同じアクセス2003のファイルにあります。

みんなの回答

  • hs1009
  • ベストアンサー率0% (0/0)
回答No.1

連番に意味を持たせないなら、単純に登録する際にぶつかる事のない値を格納してはどうでしょうか? 私はこのような場合には "yyyymmddhhssmm" & "ミリ秒5桁" を登録するタイミングで取得・セットしています。 おそらくdrdrdrdrさんが開発しているPGは、1台のPCでのみ使用するものだと推測します。新規追加フォームを開く時にレコードを追加すると言う事は、ユーザーが登録を行わなかった場合、その不必要なレコードを削除しなければならない手間が出てきます、これは連番のインクリメントでも同じ事が言えると思います。 管理noがどうしても新規追加フォームへの表示が必要であれば、避けては通れませんが... なので登録ボタンクリック時に、下記のようなSQLを書いてみれば... Dim str管理cd AS String str管理cd = Format(Now,"yyyymmddhhmmss") & ミリ秒 INSERT INT master VALUES(str管理cd, フィールド1, フィールド2, ...)

drdrdrdr
質問者

お礼

ありがとうございました。 今回はサブフォームを見えない状態にして埋め込みSetFocusしてとりました。 しかし今後もsqlの実行(select文)結果がほしくなる事が絶対あるのでその時どうするかが問題です。

関連するQ&A