Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2016)
ADOのRecordCountが0で返される
投稿日時: 17/06/15 11:42:29
投稿者: マンゴ

お世話になります。
教えてください。
 
以下コードで、「条件テンプレート」名称が「U31」始まりのデータをAccessから抽出していますが、
抽出結果のRecordCountを返すと0になります。
 
検証:
1.Accessの明細履歴TBにはU31始まりのデータは存在する
2.Accessの店舗マスタTBに上記1のGBLと一致するデータも存在する
(上記1と2はAccessのクエリで実行すると正しくデータ抽出はできます)
 
何もエラー提示もなく、
どこの構文が間違っているのかわからなくなりました。
 
ご教授お願いします。

投稿日時: 17/06/15 11:43:14
投稿者: マンゴ

失礼しました。
以下がコードです。
 
Option Explicit
 
Sub CreateFCAR()
     
     
    Dim adocon As New adodb.Connection
    Dim adors As New adodb.Recordset
    Dim adodb As String
    Dim adosql As String
     
    'Accessに接続
    adodb = "D:\WebADI_history.accdb"
    adocon.ConnectionString = "provider=microsoft.ACE.OLEDB.12.0;" & "Data Source=" & adodb
    adocon.Open
     
    'SQL設定(U31始まりであいまい検索)
    adosql = "SELECT 当月WebADI明細履歴.条件テンプレート, 当月WebADI明細履歴.固定金額, 当月WebADI明細履歴.備考, 当月WebADI明細履歴.消費税区分, 当月WebADI明細履歴.GBL, 店舗マスタ.FCコード, 店舗マスタ.FC名" & _
            " FROM 当月WebADI明細履歴 LEFT JOIN 店舗マスタ ON 当月WebADI明細履歴.GBL = 店舗マスタ.GBL" & _
            " WHERE 当月WebADI明細履歴.条件テンプレート Like 'U31*';"
    'クエリ実行
    adors.Open adosql, adocon, adOpenKeyset, adLockOptimistic
     
    'RecordCount数を返す
    Debug.Print adors.RecordCount
     
End Sub

投稿日時: 17/06/15 12:13:50
投稿者: マンゴ

投稿後もいろいろネットで探してみたところ、解決できました。
 
" WHERE 当月WebADI明細履歴.条件テンプレート Like 'U31*';"
ここが間違っていました。
あいまい検索では"*"ではなく、"%"を使うそうです。
 
%で解決できました。
お騒がせして申し訳けありませんでした。