質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

1112閲覧

非連結テキストボックスの入力内容をテーブルに書き込む

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2023/06/16 01:39

実現したいこと

コントロールソースを持つテキストボックスを介さずに非連結の適すTボックスの入力内容をテーブルに書き込みたい

前提

マスターテーブルに新規登録を行うフォームを作成しております。
先日こちらでこのような質問をさせて頂き、コメントで非連結のテキストボックスにテーブルに書き込みたい内容を入力し、それをコントロールソースを持つテキストボックスに代入することで書き込みを行う方法を知りました。
しかしながらこの方法だと、書き込みたいフィールドの数が多ければ多いほどフォーム上に配置するオブジェクトの数が多くなってしまうと思い、コントロールソースを持つテキストボックスを配置しなくてもテーブルに書き込む方法はないものかと思い、質問させて頂きました。

発生している問題・エラーメッセージ

非連結→テキストボックス代入→テーブル書き込みだと、
①非連結テキストボックスの数と同じだけ、コントロールソースを持つテキストボックスを用意する必要がある
②①により、テキストボックス命名の手間が増える・フォームデザインの視認性が損なわれる
といった問題が発生するのではないかと考えました。

試したこと

コントロールソースを持つテキストボックスを可視をいいえにした上で、背景色をつけて非連結テキストボックスの背面に配置することでフォーム上の視認性はある程度確保されたと思いますが、やはり命名の数が増えること、テキストボックスへの代入・非連結ボックス内のクリアの2行がフィールドの数だけ必要なので冗長になってしまうので、どうにかスッキリ見やすくする方法はないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

フォームは連結、テキストボックスは非連結で、ということだと推測しました。
ならば、連結テキストボックスはなくても、レコードソースのフィールドに代入することは可能です。

例えば、非連結テキストボックスの名前を、「txt_フィールド名」としておけば、下記のようなコードでフィールドに代入して保存できます。

vba

1Private Sub コマンド0_Click() 2 Me.F1.Value = Me.txt_F1.Value 3 Me.F2.Value = Me.txt_F2.Value 4 Me.F3.Value = Me.txt_F3.Value 5 Me.F4.Value = Me.txt_F4.Value 6 Me.Refresh 'レコード保存 7End Sub

ただし、非連結でする場合、フォームの便利な機能を使えないし、また、フォームの動作、機能をきちんと理解してうえで設計しないと、いろいろ問題がでてきます。それなりのスキルが要求されます。

前回のsk.exeさんの回答の内容を理解したうえで、連結フォーム、連結テキストボックスのままで解決する方法を検討されることをお勧めしたいです。

そもそも、前回の質問の

レコードを保存するのに主キーが入力されている必要があるので
抜けているとエラーが表示されている

について、非連結コントロールにしても、レコード保存するには主キーが入力されている必要があるのには変わりないですし。

投稿2023/06/16 02:36

hatena19

総合スコア34347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2023/06/16 04:00

レコード保存には主キーの入力が必要であることは以前の質問で理解しております。 今回は単純に、命名の手間やフォームデザインの視認性の問題で、そちらを解決する方法がないかと思い質問させて頂きました! ちなみに非連結だけで完結させる場合に生じる、使えないフォームの機能・問題とはどういったものでしょうか?後学の為に、お手間でなければ一例でもご教示いただければ幸いです。
hatena19

2023/06/16 13:27

レコード移動したとき、連結コントロールなら、移動したレコードのデータが何もしなくても表示できます。非連結コントロールだとその都度VBAで代入する必要があるのでコード量が増えます。 日付型のフィールドに日付として正しくない値を入力した場合とか、数値型のフィールドに数値以外を入力した場合とか、、、などの入力チェックもVBAでする必要がでてきます。 リレーション設定された複数のテーブル間での参照整合性のチェックなども自前のコードでやる必要がでてきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問