Access for Office 365、Win10です。
テーブルデータをレコードセット経由でExcel出力してます。
レコードセットに渡す条件に、「LIKE検索」を使うと、何故かExcel側で空っぽ(列名行だけ)になります。
一意検索などその他は、問題なく出力されます。
空っぽになる際も、エラーは出ません。
LIKE検索自体は、Accessクエリで出力できたので文法的も問題ないようです。
分かる方教えていただけないでしょうか。
宜しくお願い致します。
vba
1Private Sub cmdExcelOut_Click() 2 3 Dim strsql As String 4 5 Dim xlapp As Object 6 Dim myCn As New ADODB.Connection 7 Dim myRs As New ADODB.Recordset 8 Dim colcnt As Integer 9 10 11 On Error GoTo Err_Exit 12 13 14 Dim ReturnArray As Variant 15 ReturnArray = GetFileName(False, "EXCELファイル (*.xlsx,*.xls)", "Excelファイルの保存") 16 If ReturnArray(0) = -302 Then 17 'キャンセルボタンが押されたときの処理を記述 18 Exit Sub 19 20 End If 21 22 23 'EXCELアプリケーションを起動 24 Set xlapp = CreateObject("Excel.Application") 25 26 Set myCn = CurrentProject.Connection 27 28 'これはなぜかダメ 29 strsql = "SELECT * FROM M_事業所 WHERE comp_name_kana Like 'カブ*'" 30 31 'これはOK 32 'strsql = "SELECT * FROM M_事業所 WHERE status = 0" 33 34 'これもOK 35 'strsql = "SELECT * FROM M_事業所 WHERE comp_name_kana = 'カブシキカイシャ テスト'" 36 37 Debug.Print strsql 38 39 'レコードセットオープン 40 myRs.Open strsql, myCn, adOpenForwardOnly, adLockReadOnly 41 42 43 With xlapp 44 .DisplayAlerts = False 45 'セットする過程が見えないよう一旦不可視 46 .Visible = False 47 48 '新しいBookを追加 49 .Workbooks.Add 50 .Worksheets("Sheet1").Select 51 52 'レコードセットのフィールド名(見出し)出力処理 53 For colcnt = 0 To myRs.Fields.Count - 1 54 .Worksheets("Sheet1").Cells(1, colcnt + 1).Value = myRs.Fields(colcnt).Name 55 Next 56 57 '結果値出力処理(1行目はヘッダーなので、2行目1列目からセット 58 .Cells(2, 1).CopyFromRecordset myRs 59 60 '列幅自動調整 61 .Cells.EntireColumn.AutoFit 62 63 '完了したら保存 64 .ActiveWorkBook.SaveAs FileName:=ReturnArray 65 66 MsgBox "出力しました。", vbOKOnly + vbInformation 67 68 .DisplayAlerts = True 69 End With 70 71 Set myRs = Nothing: Close 72 Set myCn = Nothing: Close 73 74 'Excelを終了します 75 xlapp.Quit 76 77 78 79 80 Exit Sub 81 82Err_Exit: 83 MsgBox Err.Number & ":" & Err.Description, vbOKOnly + vbCritical, "OutputExcel()" 84 Set myRs = Nothing: Close 85 Set myCn = Nothing: Close 86 xlapp.Quit 87End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/25 01:41