フルパスの値からフォルダを開くVBAを運用しています。
指定フォルダを開いたら、閲覧数をカウントしたくて新規でプロシージャを作成致しました。
フォルダ名・フォルダの中身は完全一致だが、フォルダの位置が違うパターンがあり、テーブルではそれぞれ登録されています。
フォルダ名が一致したフォルダは全て同一とみなしてカウントしたく作成しましたが、Likeで上手くHITしません。
ワイルドカードは、*と%を試しましたが、結果は変わらずでした。
フォルダ名は
[A会社(A)]「B」(20210724)【☆】サンプルA
といったパターンがほとんどです。
VBA
1Public Sub BrowsingCount(target As String) 2 Dim rs As ADODB.Recordset 3 Dim cn As ADODB.Connection 4 Dim sql As String 5 Dim target_count As Long 6 Set rs = New ADODB.Recordset 7 Set cn = CurrentProject.Connection 8 9 target = Mid(target, InStrRev(target, "\")) 10 target = Replace(target, "]", "[]]", , 1) 11 target = Replace(target, "[", "[[]", , 1) 12 13 14 sql = "SELECT フルパス,閲覧数 FROM T_タイトル WHERE [フルパス] LIKE '*" & target & " ' ;" 15 16 rs.Open sql, cn, adOpenKeyset, adLockOptimistic 17 If rs.EOF = True Then Exit Sub 18 target_count = Nz(rs("閲覧数"), 0) 19 Do Until rs.EOF = True 20 rs("閲覧数") = target_count + 1 21 rs.Update 22 rs.MoveNext 23 Loop 24 rs.Close 25 26 Set rs = Nothing 27 Set cn = Nothing 28End Sub
2021/7/24 21:26追記
◆期待する動き
「C:\tempA[A会社(A)]「B」(20210724)【☆】サンプルA」
「C:\tempB[A会社(A)]「B」(20210724)【☆】サンプルA」
「C:\tempC[A会社(A)]「B」(20210724)【☆】サンプルA」
「C:\tempA[B会社(A)]「B」(20210724)【☆】サンプルC」
「C:\tempB[B会社(A)]「B」(20210724)【☆】サンプルA」
「C:\tempC[C会社(A)]「B」(20210724)【☆】サンプルA」
があるとして、
検索するキーワードが 「[A会社(A)]「B」(20210724)【☆】サンプルA」のときは、上から3個をHITさせたいです。
回答3件
あなたの回答
tips
プレビュー