よろしくお願いいたします。
フォーム画面にボタンとテキストボックスを用意して、
'invoiceNo と'invoiceDisplay としたテキストボックスに検索条件を入力し、
ボタンを押下すると、accessで作ったテーブル(AccessTable )のデータ(接続文字列)を使って、
SQLサーバにあるテーブル(tbmCountry)の内容を取得し、フォーム上のリストに反映されるようにしています。
テキストボックスのいずれかに値が入っていれば、前方一致のWHERE句を作って件数を表示したいのですが、
私が書いたSQL文では実行されません。
※CountryCodeは、key列です。
誤り箇所が不明のため、有職者の方にご教示いただきたく存じます。
Option
1 2'##################################################################### 3'# Name : データ取得_Click 4'# Description : 入力の画面に対し管理システムより指定したデータの取込 5'##################################################################### 6Private Sub データ取得_Click() 7 ' On Error GoTo Err_データ取得_Click 8 9 '*****DB接続変数定義***** 10 Dim DB As Database 11 Dim q1 As Recordset, q2 As Recordset 12 Dim SQLCommand As String 'データベース接続文字列を取得するSQL文 13 Dim strConnection As String 'データベース接続文字列 14 Dim strCount As Integer 'データ件数 15 Dim objCon As New ADODB.Connection 16 Dim objRs As New ADODB.Recordset 17 Dim dbCom As ADODB.Command 18 19 Set DB = CurrentDb() 20 21 'データベース接続文字列を取得するSQL文 22 SQLCommand = "SELECT ID, Value FROM AccessTable WHERE ID = 1" 23 Set q1 = DB.OpenRecordset(SQLCommand) 24 25 '取得したデータベース接続文字列 26 strConnection = q1!Value 27 28 29 'データ件数を取得するSQL文(500という数字が入っています) 30 SQLCommand = "SELECT ID, Value FROM AccessTable WHERE ID = 2" 31 Set q2 = DB.OpenRecordset(SQLCommand) 32 33 '取得したデータ件数 34 strCount = q2!Value 35 36 37 '*****フォーム変数定義***** 38 Dim invNo As Variant 'invoiceNo 39 Dim invDisp As Variant 'invoiceDisplay 40 41 42 invNo = Me.invoiceNo 43 invDisp = Me.invoiceDisplay 44 45 '検索条件が未入力の場合 46 If IsNull(invNo) And IsNull(invDisp) Then 47 MsgBox "検索条件を指定してください" 48 Exit Sub 49 End If 50 51 'テキストボックスに値が両方、またはいずれかが入力されている場合 52 53 If Not IsNull(invNo) Or Not IsNull(invDisp) Then 54 55 56 '接続文字列を取得しSQLサーバーへ接続 57 objCon.ConnectionString = strConnection 58 59 objCon.Open 60 61 //ここでエラー 記述の仕方が不明 62 objRs.Open "SELECT COUNT CountryCode, FROM tbmCountry WHERE CountryCode LIKE '_%' ", objCon, adOpenKeyset, adLockOptimistic 63 64 65 66 67 objRs.Close 68 objCon.Close 69 70 Set objRs = Nothing 71 Set objCon = Nothing 72 73 74 75End If 76 77 78 79 80
回答2件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2016/03/14 04:50
2016/03/14 05:15
2016/03/14 08:14