Access2010を使用しています。
AccessVBA初心者です。
T_マスタを基にF_新規登録フォームとF_詳細情報フォームを作成しました。
項目は全部で50ほどあるのですが、その中で20の項目については、
それぞれ選択項目が決まっているため、プルダウンで選択してもらう作りです。
この選択された20項目を非連結のtxtboxにそれぞれ点数変換し、
フォーム上で合計値を出しています。
個々の点数をテーブルで持つ必要がないので、フォーム上での計算ですが、
合計値のみ、テーブルへセットしたいと考えております。
更新されるタイミングは特にこだわらないのですが、
新規登録=登録ボタン(新規レコードに登録)、
詳細情報=更新ボタン(既存データの書き換え)を設けているので、
それぞれを押したタイミングにでもテーブルへ値がセットされればと思います。
できればマクロ、VBA両方でできる方法があるとよいのですが。。
ご教示をお願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
私もAccess全く触ったことない状態から、Accessで画面を作ってる
既存システムの改修依頼があって、1時間くらいでできたし…
難しく考えすぎなんじゃないでしょうか?
まず、(私の説明では)フォームのレコードソースとかは関係
なくなります。
非連結にした時点で、Accessが裏でテーブルに自動でリンクして
更新するという機能を使わないことになります。極端な話、
フォームにテキストボックスとボタンを置いただけで、あとは
全てVBAで更新するのと変わらないわけです。
本やサイトのサンプルもそんな感じだと思うので、そういった
単純なサンプルプログラムで試した方がいいのかも?
クエリ等を使うのも結構ですが、まずは簡単なサンプルレベルから
成功することを確認してください。そしてどこまで成功するか
報告してください。
> アクションクエリとマクロ操作は一通り問題ないのですが、
そこを一文で終わらせないで下さい。
どう問題ないのですか?説明してください。
まず、べた書きで(画面から値を取らずに直接Update文を書いて)
ボタン押下のプログラムからデータ更新できたのでしょうか?
→その場合、画面から取った値を文字列(String)でつなげて終わりです。
ここまでで問題解決することは可能なはずですが、
>実行するとパラメーターの入力画面が出てしまいます。。。
パラメータを使うなら、使い方を勉強してからじゃないと使えませんが
使うことに決めたんですか?
スキルがあるならSQLインジェクション対策としても有用で、
職業プログラマの常識ではありますが…。
>実行するとパラメーターの入力画面が出てしまいます。。。
その場合、2つの原因が考えられます。
(1)SQL文に意図してパラメータを追加した。
→その場合、パラメータの値もプログラムで設定してください。
(方法はパラメータを紹介してあるサイトやページに書いてありますので
まずは書いてあるまま実行して成功するかどうか確認してください。
自分でアレンジするのはサンプル通りやって成功してからにしてください)
→成功しなかった場合は追加で状況報告
(2)SQL文が間違っていて、Accessが分からない単語を「パラメータですか?」
レベルで聞き返してきている。
→SQL文が間違っていないか?Accessが質問してきている"パラメータ名"
が何になっているかまず確かめる。
以上
No.3
- 回答日時:
>詳細情報=更新ボタン(既存データの書き換え)を設けている
ということですので、
T_マスタテーブルの主キーに相当するフィールドの説明が必要かな?
(フィールド名とデータ型は特に)
マクロで行う場合は
更新クエリと追加クエリを作っておいて
このクエリをマクロから実行。
VBAでもクエリを実行できますし、クエリのSQL文をコード中に埋め込んで
ゴチョゴチョやればクエリは不要です。
図は更新クエリのイメージ的なモノです。
No.2
- 回答日時:
>アクションクエリとは更新クエリのことでしょうか?
紹介したページは基礎知識なので、知らないのであれば
前後のページも含めて読んで頂ければ。。。
http://www.accessclub.jp/sql/11.html
>何らかの"アクション"を施すクエリのことをいいます
と説明されています。
正確に言うなら「アクションクエリの更新クエリを使う」です。
>フォームにしかない値を持ってくる構文はどこへ書けばよろしいですか?
フォームのコントロールから取るだけでは?
例えばテキストボックスならTextBox.Value プロパティ
https://msdn.microsoft.com/ja-jp/library/office/ …
これを先に紹介したページの「変数」を使った事例と組み合わせて、
更新クエリを文字列変数の編集で作り上げます。
その後、アクションクエリとして実行すればテーブルに反映されます。
入門本や入門サイトで一式勉強すべきことはご自分で勉強なさってくださいね。
プログラムは勉強した人にしかできない作業ですから。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS DCOUNTの抽出条件について
-
Accessで縦と横を入れ替えたい
-
ACCESSで購入回数を表示する方...
-
Access2013の式ビルダーでユー...
-
ACCESSで実行時エラー3008
-
sql文で削除クエリを書く
-
VBAでテーブル名とカラム名を動...
-
【access】複数のフィールドの...
-
Access から Excelのシートをイ...
-
データがあれば○○なければのSQL
-
社員名簿から検索する関数
-
Excel2007 VBA Daoクラス
-
ACCESS VBAでテーブル内の特定...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
メルカリのメルカードで買い物...
-
CloseとDisposeの違い
-
Excelシート上のマクロを登録し...
-
VBAでループ内で使う変数名を可...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データがあれば○○なければのSQL
-
ACCESS DCOUNTの抽出条件について
-
【access】複数のフィールドの...
-
ACCESS VBAでテーブル内の特定...
-
Accessで縦と横を入れ替えたい
-
Access vbaで重複レコードの削...
-
VBAでテーブル名とカラム名を動...
-
SQLServer→Access インポート
-
別のaccessファイルからデータ...
-
抽出条件でデータ型が一致しま...
-
ACCESSで購入回数を表示する方...
-
DAOでSQLServerに接続し、LeftJ...
-
アクセスで連続データをテーブ...
-
ACCESSで実行時エラー3008
-
sql文で削除クエリを書く
-
Access から Excelのシートをイ...
-
access追加クエリーでform入力...
-
VB.NETでテーブルを作成
-
アクセスで定数を利用したい。
-
ACCESSのクエリ、SQLに変数を使...
おすすめ情報
アクションクエリとは更新クエリのことでしょうか?
フォームにしかない値を持ってくる構文はどこへ書けばよろしいですか?
nicotinismさん、今回もご指導をありがとうございます。
アクションクエリとマクロ操作は一通り問題ないのですが、
フォームでの作成経験がなく、VBAも初心者です。
VBAプログラミングに関する本で一通り流れはROMに沿ってやってみたのですが・・・
T_マスターの主キー=ID、データ型はテキスト型にしています。
F_詳細情報の更新ボタンを押すタイミングで更新がかかるよう、
更新クエリを作成し、マクロに追加してみました。
F_詳細情報のレコードソースはT_マスタになっているのですが、
実行するとパラメーターの入力画面が出てしまいます。。。
F_詳細のtxtbox点数のコントロールソースに式が入っているせいかと思い、
もう一つ合計点数の非連結txtboxを作り、点数をコントロールソースで
引っ張って更新クエリを作ってみたのですがはやりうまくいきません。
ご指導をお願いいたします。
操作方法を教えてくださった皆様ありがとうございました。
月末で他の業務が忙しくなったため、私の意志には反しますが、
新たに点数更新ボタンを作成し、テーブルへセットする方法で今回は対応いたしました。
また新たな壁にぶつかりましたらご教示をお願いいたします。