よろしくお願いします。
フォーム画面にボタンとテキストボックスを用意して、
'invoiceNo と'invoiceDisplay としたテキストボックスに検索条件を入力し、
ボタンを押下すると、accessで作ったテーブル(AccessTable )のデータ(接続文字列)を使って、
SQLサーバにあるテーブル(tbmCountry)の内容を取得し、フォーム上のリストに反映されるようにしています。
コード内でコメントアウトしているIF文が今回手詰まりになっているところです。
テキストボックスのいずれかに値が入っていれば、where句で取得した列数と、変数に代入している数値を演算子で比較し、msgボックスを出す機能を実装したいのですが、コメントにあるように型が合わずエラーになります。
つまり、変数strSqlに、SQL文ではなく、SQL文で取得した列数を格納したいのです。
調べたのですが、なかなかしっくりくるものが無く、有職者の方よりご回答いただければ幸いです。
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文 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 50 51 'テキストボックスに値が両方、またはいずれかが入力されている場合 52 ElseIf Not IsNull(invNo) Or Not IsNull(invDisp) Then 53 54 55 '接続文字列を取得しSQLサーバーへ接続 56 objCon.ConnectionString = strConnection 57 58 59 strSql = "SELECT COUNT (CountryCode) FROM tbmCountry " 60 objCon.Open 61 62 63 //strSql = sql文 、 strCount = 数値 の為型が違うとエラーが出る。 64 //strSqlの値を、sql文そのものではなく、sql文で取ってきた列の数を入れて、演算子で比較したい 65 If (strSql >= strCount) Then 66 MsgBox "検索条件を指定してください" 67 Exit Sub 68 69 70 objRs.Close 71 objCon.Close 72 73 Set objRs = Nothing 74 Set objCon = Nothing 75 76 77 78 End If 79 80 End If 81 82 83
回答3件
あなたの回答
tips
プレビュー