VB初心者でソフト開発をやり始めたのですが行き詰まって困っています。
助けてください。よろしくお願いします。
・ACCESSのmdb形式のデータは下記の構成になっています。
1列: ID integer サイズ指定無し 自動設定
2列: 名前 string サイズ指定無し
3列: 性別 string サイズ指定無し
4列: 電話番号 string サイズ指定無し
テーブル名:sampleTable
フォームにテキストボックスを項目数配置してIDを設定してボタンを押すと各テキストボックスに
検索されたデータが帰ってきて表示されるものです。
・下記のようなプログラムで「ID」を指定して検索が出来るのは確認済みです。
これを「名前」を指定して検索出来るように改造したいのですがどのようにすれば
良いのかお教え頂きたくお願いいたします。
たぶん ”strSelectSql =・・・・・の部分かと思うのですがよろしくお願い致します。
(色々試しましたがうまくいきません・・・。)
Public Class Form1
Dim MjstrPath As String
Dim MjstrID As String 'ID
Dim MjstrSimei As String '名前
Dim MjstrSexnam As String '性別
Dim MjstrTel As String '電話番号
'-----------------------------
'データを検索する
'-----------------------------
Function MDB_SELECT(ByVal PistrMakPath As String) As Boolean
MDB_SELECT = False
Dim strDatbasePara As String 'データベースパラメータ
Dim ObjCnn As New ADODB.Connection
Dim ObjRst As New ADODB.Recordset
Dim strSelectSql As String
MjstrSimei= TextBox4
strDatbasePara = "Provider=Microsoft.Jet.OLEDB.4.0;" + _
"Data Source=" + PistrMakPath + ";" + _
"Jet OLEDB:Engine Type=5;"
Try
ObjCnn.Open(strDatbasePara)
' strSelectSql = "Select * from sampleTable" _
' + " where ID = " + MjstrID
strSelectSql = "Select * from sampleTable" _
+ " where ID = " + MjstrID '<--- 問題か? ---
’where 名前= "+ MjstrSimei ではだめでした
ObjRst.Open(strSelectSql, ObjCnn, _
ADODB.CursorTypeEnum.adOpenKeyset, _
ADODB.LockTypeEnum.adLockOptimistic)
If ObjRst.EOF Then
MjstrSimei = ""
MjstrSexnam = ""
MjstrTel = ""
Else
MjstrID = ObjRst.Fields("ID").Value
MjstrSimei = ObjRst.Fields("名前").Value
MjstrSexnam = ObjRst.Fields("性別").Value
MjstrTel = ObjRst.Fields("電話番号").Value
MDB_SELECT = True
End If
ObjRst.Update()
ObjRst.Close()
Catch ex As Exception
End Try
ObjCnn = Nothing
ObjRst = Nothing
End Function
'-------------------------------------------------------------
'データを検索する
'-------------------------------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
Dim strMdbpath As String
Dim intRecQuery As Integer
strMdbpath = TextBox1.Text + "\" + TextBox2.Text
MjstrID = TextBox3.Text
If MDB_SELECT(strMdbpath) Then
MsgBox("検索該当しました")
Else
MsgBox("該当ありません")
End If
TextBox4.Text = MjstrSimei
TextBox5.Text = MjstrSexnam
TextBox6.Text = MjstrTel
End Sub
End Class
VB初心者でソフト開発をやり始めたのですが行き詰まって困っています。
助けてください。よろしくお願いします。
・ACCESSのmdb形式のデータは下記の構成になっています。
1列: ID integer サイズ指定無し 自動設定
2列: 名前 string サイズ指定無し
3列: 性別 string サイズ指定無し
4列: 電話番号 string サイズ指定無し
テーブル名:sampleTable
フォームにテキストボックスを項目数配置してIDを設定してボタンを押すと各テキストボックスに
検索されたデータが帰ってきて表示されるものです。
・下記のようなプログラムで「ID」を指定して検索が出来るのは確認済みです。
これを「名前」を指定して検索出来るように改造したいのですがどのようにすれば
良いのかお教え頂きたくお願いいたします。
たぶん ”strSelectSql =・・・・・の部分かと思うのですがよろしくお願い致します。
(色々試しましたがうまくいきません・・・。)
Public Class Form1
Dim MjstrPath As String
Dim MjstrID As String 'ID
Dim MjstrSimei As String '名前
Dim MjstrSexnam As String '性別
Dim MjstrTel As String '電話番号
'-----------------------------
'データを検索する
'-----------------------------
Function MDB_SELECT(ByVal PistrMakPath As String) As Boolean
MDB_SELECT = False
Dim strDatbasePara As String 'データベースパラメータ
Dim ObjCnn As New ADODB.Connection
Dim ObjRst As New ADODB.Recordset
Dim strSelectSql As String
MjstrSimei= TextBox4
strDatbasePara = "Provider=Microsoft.Jet.OLEDB.4.0;" + _
"Data Source=" + PistrMakPath + ";" + _
"Jet OLEDB:Engine Type=5;"
Try
ObjCnn.Open(strDatbasePara)
' strSelectSql = "Select * from sampleTable" _
' + " where ID = " + MjstrID
strSelectSql = "Select * from sampleTable" _
+ " where ID = " + MjstrID '<--- 問題か? ---
’where 名前= "+ MjstrSimei ではだめでした
ObjRst.Open(strSelectSql, ObjCnn, _
ADODB.CursorTypeEnum.adOpenKeyset, _
ADODB.LockTypeEnum.adLockOptimistic)
If ObjRst.EOF Then
MjstrSimei = ""
MjstrSexnam = ""
MjstrTel = ""
Else
MjstrID = ObjRst.Fields("ID").Value
MjstrSimei = ObjRst.Fields("名前").Value
MjstrSexnam = ObjRst.Fields("性別").Value
MjstrTel = ObjRst.Fields("電話番号").Value
MDB_SELECT = True
End If
ObjRst.Update()
ObjRst.Close()
Catch ex As Exception
End Try
ObjCnn = Nothing
ObjRst = Nothing
End Function
'-------------------------------------------------------------
'データを検索する
'-------------------------------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
Dim strMdbpath As String
Dim intRecQuery As Integer
strMdbpath = TextBox1.Text + "\" + TextBox2.Text
MjstrID = TextBox3.Text
If MDB_SELECT(strMdbpath) Then
MsgBox("検索該当しました")
Else
MsgBox("該当ありません")
End If
TextBox4.Text = MjstrSimei
TextBox5.Text = MjstrSexnam
TextBox6.Text = MjstrTel
End Sub
End Class