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

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

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

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

Access

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

Q&A

1回答

1452閲覧

異なるフォームのテキストを転記したい

kuppakarubi

総合スコア0

VBA

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

Access

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

0グッド

0クリップ

投稿2021/04/11 15:18

編集2021/04/12 02:19

■実現させたいこと
ログインフォームでログインした氏名を
異なるフォームのテキストボックスへ転記させたいです。

詳細には、案件を管理するAccessを作成しているのですが、
まず、アクセスを開いたら、氏名とパスワードを入力する
フォームが表示され、
ログイン後、案件割り振り用のフォームを開き、
そのフォームの担当者名のテキストボックスに
ログインした氏名をフォームのレコードソースの
フィールドに入力したいと考えています。

■問題点
案件割り振り用のフォームのクエリ以下の定義です。

・No(主キー)→ 条件にてMinを使用しています。
・担当者名(Null) →非連結のテキストボックスです。

フォームにて、担当者名のテキストボックスを
非連結にてイベントプロシージャにて以下を入力しています。

Forms![Form名]![テキスト名]

上記にて入力しても、ログイン氏名が転記されません。

該当のソースコード

担当者割り振り用のフォームは以下の内容です。

Private Sub 担当者_Click() Forms![Form名]![テキスト名] End Sub

なお、ログインフォームのVBAコードは以下の通りとなります。
ログインフォームはログイン後、 Me.Visible = Falseにて隠した状態となるようにしています。

Private Sub cmdRogIn_Click() Dim Res If IsNull(Me.txtID) Then MsgBox "氏名を入力してください" Me.txtID.SetFocus Exit Sub End If If IsNull(Me.txtPass) Then MsgBox "パスワードを入力してください" Me.txtPass.SetFocus Exit Sub End If Res = DLookup("Pass", "T_ID_pass", _ "氏名='" & Replace(Me.txtID, "'", "''") & "'") If IsNull(Res) Then MsgBox "該当する氏名はありません。正しい氏名を入力してください。" Me.txtID.SetFocus Exit Sub End If If Res = Me.txtPass Then DoCmd.OpenForm "F_メニュー" '----ID,pass合致でフォームを開く。 Me.Visible = False 'Visible = False Else MsgBox "パスワードが異なります。", vbOKOnly + vbCritical Me.txtPass.SetFocus End If End Sub

VBAについては初心者なため、この仕様が実現できるかどうかも
わかっておりませんが、ご教授いただけますと大変助かります。

よろしくお願いいたします。

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

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

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

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

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

hatena19

2021/04/12 00:44

> 非連結にてイベントプロシージャにて以下を入力しています。 > Forms![Form名]![テキスト名] VBAコードがこれだけならコンパイルエラーになります。一部ではなく全体のコードを提示してください。 イベントプロシージャなら、Private Sub から End Sub まで。 あと、ログインフォームは開いた状態ですか。
kuppakarubi

2021/04/12 01:42

内容が足らず失礼いたしました。 VBAコードは以下の通りです。 ------------------------------------------- Private Sub 担当者_Click() Forms![Form名]![テキスト名] End Sub ------------------------------------------- また、ログインフォームはログイン後、 Me.Visible = Falseにて隠した状態となるようにしています。 なお、ログインフォームのVBAコードは以下の通りとなります。 ------------------------------------------- Private Sub cmdRogIn_Click() Dim Res If IsNull(Me.txtID) Then MsgBox "氏名を入力してください" Me.txtID.SetFocus Exit Sub End If If IsNull(Me.txtPass) Then MsgBox "パスワードを入力してください" Me.txtPass.SetFocus Exit Sub End If Res = DLookup("Pass", "T_ID_pass", _ "氏名='" & Replace(Me.txtID, "'", "''") & "'") If IsNull(Res) Then MsgBox "該当する氏名はありません。正しい氏名を入力してください。" Me.txtID.SetFocus Exit Sub End If If Res = Me.txtPass Then DoCmd.OpenForm "F_メニュー" '----ID,pass合致でフォームを開く。 Me.Visible = False 'Visible = False Else MsgBox "パスワードが異なります。", vbOKOnly + vbCritical Me.txtPass.SetFocus End If End Sub ------------------------------------------- よろしくお願いいたします。
hatena19

2021/04/12 01:43

質問は編集できますので、質問に追記してください。
hatena19

2021/04/12 01:51

「担当者」というのは、非連結のテキストボックスの名前ですか。 やりたいことは、非連結のテキストボックスにログインフォームの担当者名テキストボックスの値を表示するだけです。それともフォームのレコードソースのフィールドに入力したいですか。
guest

回答1

0

vba

1Private Sub 担当者_Click() 2 3Forms![Form名]![テキスト名] 4 5End Sub

このコードでは構文エラーですので動作しません。削除してください。

フォーム上のテキストボックスにログインフォーム上の担当者名を表示したいのなら、

フォーム名 ログインフォーム
テキストボックス名 担当者名

として、
フォーム上のテキストボックスのコントロールソースに下記の式を設定すればいいでしょう。

=Forms![ログインフォーム]![担当者名]

投稿2021/04/12 02:28

hatena19

総合スコア33808

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.45%

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

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

質問する

関連した質問