VBAからVBにステップアップしてきた初心者です。
部内の管理ソフトを作成したいのですがその際ログインする人によって権限を変更したいので職員情報(職員ID、氏名、ログインID、パスワード、権限ランク、等々)をDB(ACCESS)に保存しておいて情報抽出したいと思っていますいろいろ考えてコードを作成しているのですがうまく動きません
Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
Dim DB As New ADODB.Connection, RS As New ADODB.Recordset
Dim 検索Key As String
検索Key = TextBox1.Text
If 検索Key = "" Then
Exit Sub
End If
DB.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Application.StartupPath & "\○○.mdb;" & "Jet OLEDB:Database Password=△△;")
RS.Open("Select * From 職員リスト Where 職員ID = " & 検索Key & "")
If RS.BOF Then
MsgBox(検索Key & "に対応する職員がいません。")
Exit Sub
Else
TextBox2.Text = RS.Fields職員ID ←ここでエラーが出ます
End If
End Sub
まずはTEXTBOX1に職員IDを入力したら勝手に氏名がTEXTBOX2に表示できるようにしたいと思っています。
いろいろレコードセットの表示方法(VBA等)を探し試したのですがどれもうまく動きません。ご教授お願いします
下記のようなサイトもあったのですがVBおよびDB操作を始めたばかりの私には難解でした
http://adonetvb.com/VB2008GetkeyData01.html
よい方法があればよろしくお願いします
No.2ベストアンサー
- 回答日時:
RS.Open("Select * From 職員リスト Where 職員ID = " & 検索Key & "")
ここでデータコネクションを指定していないので次のように修正してください。あと & "" は不要です。
RS.Open("Select * From 職員リスト Where 職員ID = " & 検索Key, DB)
TextBox2.Text = RS.Fields職員ID
#1さんの指摘も含めて次のように。
TextBox2.Text = RS.Fields.Item("氏名").Value.ToString()
欲しいのは氏名だと思うのでフィールド名は"氏名"にしました。Fieldから値を得るためにValueプロパティを付加し、さらに文字列に変換するためにToString()をつけています。
これでお望みの動作になるとは思いますが、もうひとつ。
TextBox1_Enterイベントで処理していますが、もしEnterキーを押したタイミングを狙っているのであればこれは間違いです。Enterイベントはコントロールがフォーカスを受けたときに呼び出されるイベントです。Enterキーの押下によって動作させるにはKeyDownかKeyUpで処理してください。個人的にはKeyDownはキーを押し続けると繰り返し呼び出されるのでKeyUpのほうがよいかと。
Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyCode = Keys.Enter Then
' ここにコードを記述
End If
End Sub
ありがとうございました。動作しました。
とても丁寧な説明で理解しやすかったです。
またイベント操作の指摘も図星でコードを読んでそのままの動作かな?
と思っていました。
VBの初心者本にはVBAの延長みたいに書かれていますが、多くのところで似て非なるものですね。
理解・習熟するのに時間がかかりそうですが、しかしソフトが動いた時はうれしいもので、これからも精進したいと思います
ありがとうございました
No.3
- 回答日時:
RS.Open("Select * From 職員リスト Where 職員ID =' " & 検索Key & "';")
職員IDはstring型なら 検索Keyを(シングルクォーテーション)で囲んでやる。
>If RS.BOF Then
私はEOFを使うけど(これでもいいかも)
No.1
- 回答日時:
>TextBox2.Text = RS.Fields職員ID
TextBox2.Text = RS.Fields("職員ID")
という問題では無くて?
この回答への補足
早速の回答ありがとうございます。
上記のようにRS.Fields("職員ID")としても緑色の波線が入って
'ADODB.Field' から 'String' への変換時にランタイム エラーが発生する可能性があります
とエラーが出るんですよ
いろいろここのコードを書き換えては試しているのですがうまくいきません。
すいません
さらに追加です
RS.Open("Select * From 職員リスト Where 職員ID = " & 検索Key & "")の部分でもエラーが出ます
ExcelVBAでは下記の書き方でOKでしたがVBではダメでした
RS.Source = "Select * From 職員リスト Where 職員ID = " & 検索Key & ""
RS.OPEN
TextBox2.Text = RS.Fields("職員ID")でエラーが出るのはそのせいかもしれません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
市役所の会計年度任用職員につ...
-
B型作業所 辞める 後悔
-
公務員の横柄な態度は我慢する...
-
市役所職員は他の市に住所を移...
-
保育園で服をなくされてしまい...
-
公務員の引越し
-
地方公共団体における監と官
-
社協職員の保険、年金
-
「停職」の起点はいつでしょうか。
-
教員の「任免」と「採用」の用...
-
就労継続支援B型事業所 管理者 ...
-
図書館職員態度の悪さ
-
出入国在留管理の申請等取次申...
-
JA(農協)ってブラックなん...
-
常勤的非常勤職員とは。。。
-
自治労を辞めたいのですが。
-
JRみどりの窓口職員への苦情
-
退職まであと1ヶ月半ですが、...
-
地方自治法の使用料と職員駐車...
-
事業所内保育園(託児所)は職...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
市役所の会計年度任用職員につ...
-
公務員の横柄な態度は我慢する...
-
市役所職員は他の市に住所を移...
-
地方公共団体における監と官
-
田舎の公民館に非正規職員とし...
-
社協職員の保険、年金
-
退職まであと1ヶ月半ですが、...
-
一時保護所、児童相談所の対応...
-
B型作業所で利用者として働いて...
-
JA(農協)ってブラックなん...
-
教員の「任免」と「採用」の用...
-
自主退職に追い込む 自主退職に...
-
公務員の引越し
-
市役所の臨時職員。契約更新し...
-
学童保育で働いている者です。...
-
外国人職員に対して喧しい!!っ...
-
休日に仕事の買い出しが…
-
公務員の年次有給休暇について
-
けいさつ病院の医師は公務員?
-
保育園で服をなくされてしまい...
おすすめ情報