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

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

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

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

Access

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

Q&A

解決済

1回答

819閲覧

Access エラー(解決出来ました)

Melin_Sapphire

総合スコア3

VBA

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

Access

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

0グッド

0クリップ

投稿2023/08/07 02:46

編集2023/08/07 03:52

前提・実現したいこと

VBAを使用して、「名前」のフォームから入力された姓と名を使って「MS_個人情報C」のクエリの情報と一致するデータを抽出し、結果をテキストボックスにリストとして表示するプログラムを作成するシステムを作っています。
ここでは、AccessのフォームとVBAコードを使用しています。
名前の姓だけを入力し、抽出を実行した際にメソッドまたはデータ メンバーが見つかりません (エラー 461)が発生しました。
イメージ説明

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

メソッドまたはデータ メンバーが見つかりません (エラー 461) ーーソースコードーー Me.txt抽出結果.Value = "抽出結果:" & vbCrLf の .Value = の所で止まってしまう ーーーーーーーーーー

該当のソースコード

vba

1Private Sub コマンド6_Click() 2 On Error GoTo ErrorHandler 3 4 Dim db As DAO.Database 5 Dim rs As DAO.Recordset 6 Dim strSQL As String 7 Dim lastName As String 8 Dim firstName As String 9 Dim queryPart As String 10 11 ' テキストボックスから入力された姓と名を取得 12 If Not IsNull(Me.txt姓.Value) Then 13 lastName = Trim(Me.txt姓.Value) 14 End If 15 16 If Not IsNull(Me.txt名.Value) Then 17 firstName = Trim(Me.txt名.Value) 18 End If 19 20 ' データベースへの接続(ファイル名は適宜変更してください) 21 Set db = CurrentDb() 22 23 ' クエリの基本部分を作成 24 strSQL = "SELECT * FROM MS_個人情報C WHERE " 25 26 ' 入力された姓と名に応じてクエリを作成 27 If lastName <> "" And firstName <> "" Then 28 ' 姓と名の両方が入力された場合のクエリ 29 queryPart = "([姓] = '" & lastName & "' AND [名] = '" & firstName & "')" 30 ElseIf lastName <> "" Then 31 ' 姓だけが入力された場合のクエリ 32 queryPart = "([姓] = '" & lastName & "')" 33 ElseIf firstName <> "" Then 34 ' 名だけが入力された場合のクエリ 35 queryPart = "([名] = '" & firstName & "')" 36 Else 37 ' 姓と名のどちらも入力されていない場合は終了 38 MsgBox "姓と名のいずれかを入力してください。", vbExclamation 39 Exit Sub 40 End If 41 42 ' クエリを完成させて実行 43 strSQL = strSQL & queryPart 44 Set rs = db.OpenRecordset(strSQL) 45 46 ' テキストボックスに抽出結果を表示 47 If Not rs.EOF Then 48 rs.MoveFirst 49 Me.txt抽出結果.Value = "抽出結果:" & vbCrLf 50 Do While Not rs.EOF 51 ' テキストボックスに氏名・姓・名・生年月日・性別・血液型を追加 52 Me.txt抽出結果.Value = Me.txt抽出結果.Value & rs("氏名") & "、" & rs("姓") & "、" & rs("名") & "、" & rs("生年月日") & "、" & rs("性別") & "、" & rs("血液型") & vbCrLf 53 rs.MoveNext 54 Loop 55 Else 56 Me.txt抽出結果.Value = "一致するデータはありませんでした。" 57 End If 58 59 ' レコードセットとデータベースをクローズ 60 rs.Close 61 db.Close 62 63 Set rs = Nothing 64 Set db = Nothing 65 66Exit Sub 67 68ErrorHandler: 69 MsgBox "エラーが発生しました:" & Err.Description, vbExclamation 70 Exit Sub 71End Sub

試したこと

ChatGPTを利用し、コードを入力し直してみたりしました。
・追記
ChatGPTを利用し、コードは現在のソースコードの通りになっております。

補足情報(FW/ツールのバージョンなど)

・Chat GPT 3.5
・Access 2007 - 2016 ファイル形式
・Windows10 pro 64bit
お忙しい中申し訳ございませんが宜しくお願いいたします。
その他、不明な点等ございましたら、お手数をお掛けしますが、ご質問をよろしくお願いいたします。

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

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

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

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

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

sk.exe

2023/08/07 02:59

> 抽出の機能を実行した際にメソッドまたはデータ メンバーが見つかりません (エラー 461)が発生しました。 その実行時エラーが、具体的にどのステートメントを実行しようとした際に発生したのかを調べることが先決でしょう。 > On Error GoTo ErrorHandler とりあえず、上記のステートメントをコメントアウトした上でデバッグ作業を行ってください。
Melin_Sapphire

2023/08/07 03:50

お忙しい中、ご指摘ありがとうございます。 >>>その実行時エラーが、具体的にどのステートメントを実行しようとした際に発生したのかを調べることが先決でしょう。 具体的なステートメントを実行したかにつきましては、質問文を再度編集致しました。 今回のエラーが起きてしまった原因をHPで再度解決方法を調べました。 >>> とりあえず、上記のステートメントをコメントアウトした上でデバッグ作業を行ってください。 デバッグ作業を行った所、フォームに作成した名前とVBAの名前が一致していない事に気が付きました。 無事エラーが解消出来ました。 ご指摘を頂きましてありがとうございました。 お忙しい中、ありがとうございました。
Melin_Sapphire

2023/08/07 05:04

>>>解決された場合はご自身で回答を投稿されるなどして質問をクローズしましょう。 大変申し訳ございません。ご指摘ありがとうございます。 これで質問をクローズ出来たのでしょうか?
guest

回答1

0

自己解決

デバッグ作業を行った所、フォームに作成した名前とVBAの名前が一致していない事に気が付きました。
無事エラーが解消出来ました。

投稿2023/08/07 05:01

Melin_Sapphire

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問