Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


648 / 2272 ツリー ←次へ | 前へ→

【10759】エラーが解決できません 初心者 08/11/19(水) 19:06 質問[未読]
【10761】Re:エラーが解決できません Gin_II 08/11/19(水) 20:11 回答[未読]
【10762】Re:エラーが解決できません Gin_II 08/11/19(水) 20:13 発言[未読]
【10764】Re:エラーが解決できません 初心者 08/11/20(木) 9:37 質問[未読]
【10767】Re:エラーが解決できません neptune 08/11/20(木) 10:56 発言[未読]
【10768】Re:エラーが解決できません Gin_II 08/11/20(木) 11:39 回答[未読]
【10772】Re:エラーが解決できません 初心者 08/11/20(木) 15:11 質問[未読]
【10774】Re:エラーが解決できません Gin_II 08/11/20(木) 16:20 発言[未読]
【10776】Re:エラーが解決できません 初心者 08/11/20(木) 16:48 お礼[未読]

【10759】エラーが解決できません
質問  初心者  - 08/11/19(水) 19:06 -

引用なし
パスワード
   Private Sub cmd詳細d_Click()

On Error GoTo Err_cmd詳細_Click

  Dim stDocName As String

  stDocName = ChrW(113) & ChrW(114) & ChrW(121) & ChrW(32) & ChrW(12522) & ChrW(12540) & ChrW(12473) & ChrW(20250) & ChrW(31038) & ChrW(12463) & ChrW(12522) & ChrW(12456)
  DoCmd.OpenQuery stDocName, acNormal, acEdit

Exit_cmd リース会社_Click:
  Exit Sub

Err_cmd リース会社_Click:
  MsgBox Err.Description
  Resume Exit_cmd詳細_Click

Private Sub cmdAZ_Click()

    Call setFilter("A-Z")

End Sub

Private Sub cmdあ_Click()

    Call setFilter("ア-オ")

End Sub

Private Sub cmdカ_Click()

    Call setFilter("カ-ゴ")

End Sub

Private Sub cmdサ_Click()

    Call setFilter("サ-ド")

End Sub

Private Sub cmdタ_Click()

    Call setFilter("タ-ド")

End Sub

Private Sub cmdナ_Click()

    Call setFilter("ナ-ノ")
    
End Sub

Private Sub cmdハ_Click()

    Call setFilter("ハ-ボ")
    
End Sub

Private Sub cmdマ_Click()

    Call setFilter("マ-モ")
    
End Sub

Private Sub cmdヤ_Click()

    Call setFilter("ヤ-ヨ")
    
End Sub

Private Sub cmdラ_Click()

    Call setFilter("ラ-ロ")
    
End Sub

Private Sub cmdワ_Click()

    Call setFilter("ワ-ン")
    
End Sub


Private Function setFilter(strItem As String)

  Dim strCrit As String
  Dim StrOrder As String
 
  If Me.フィルタ対象 = 1 Then
    strCrit = "部門名フリガナ like `[" & strItem & "]*`"
    StrOrder = "部門名フリガナ"
   
  Else
    strCrit = "リース会社フリガナ like `[" & strItem & "]*`"
    StrOrder = "リース会社フリガナ"
   
  End If
  
  Me.Filter = strCrit
  Me.OrderBy = StrOrder
  Me.FilterOn = True
  Me.OrderByOn = True

 
End Function

Private Sub cmd詳細_Click()

End Sub

Private Sub 抽出解除_Click()

  Me.Filter = ""
  Me.OrderBy = ""
  Me.FilterOn = False
  Me.OrderByOn = False
  
End Sub


上記のVBAで Me.Filter = strCrit で、実行時エラー3125が発生してしまいます。
初心者で全く分からないので、よければご教授して頂けると嬉しいです。

【10761】Re:エラーが解決できません
回答  Gin_II E-MAIL  - 08/11/19(水) 20:11 -

引用なし
パスワード
   > 上記のVBAで Me.Filter = strCrit で、実行時エラー3125が発生してしまいます。

エラーメッセージは、

'-----------------------------------------------------
'|' が見つかりません。
パラメータや別名が正しいこと、
無効な文字や区切り記号が含まれていないこと、
または名前が長すぎないことを確認してください。
'-----------------------------------------------------

でしょうか?


>   stDocName = ChrW(113) & ChrW(114) & 〜省略〜

分かりづらいので、

stDocName = "qry リース会社クリエ"

に変更した方がいいと思います。
#ちなみに、クリエ→クエリですかね ^^;


> Private Sub cmdあ_Click()
> Private Sub cmdカ_Click()
> Private Sub cmdサ_Click()
    :

オプショングループにすれば、一つのイベントで処理できると思いますが、
何かオプショングループでは不都合があるのでしょうか?


>     strCrit = "部門名フリガナ like `[" & strItem & "]*`"
>     strCrit = "リース会社フリガナ like `[" & strItem & "]*`"

それぞれ、

strCrit = "部門名フリガナ like '" & strItem & "*'"
strCrit = "リース会社フリガナ like '" & strItem & "*'"

のように修正してみてください。

【10762】Re:エラーが解決できません
発言  Gin_II E-MAIL  - 08/11/19(水) 20:13 -

引用なし
パスワード
   追加です。

> Private Function setFilter(strItem As String)

値を返さないのであれば、Function プロシージャではなく、Sub プロシージャの
方がいいですね。

【10764】Re:エラーが解決できません
質問  初心者  - 08/11/20(木) 9:37 -

引用なし
パスワード
   おはようございます。
昨日、投稿した者です。
ご丁寧な返信ありがとうございました。

ご教授頂いた通りに修正してみましたが、
「実行時エラー`3125`:
"が見つかりません。パラメータや別名が正しいこと、無効な文字や区切り記号が含まれないこと、または名前が長すぎない事を確認してください。」
というエラーメッセージが発生してしまいます。

〜〜省略〜〜
 End If
  
  →Me.Filter = strCrit
   Me.OrderBy = StrOrder


度々の投稿、申し訳ありません。

【10767】Re:エラーが解決できません
発言  neptune  - 08/11/20(木) 10:56 -

引用なし
パスワード
   ▼初心者 さん:
こんにちは

横から失礼
>>〜〜省略〜〜
> End If
>  
   debug.print strcrit 'これを追加
>  →Me.Filter = strCrit
>   Me.OrderBy = StrOrder
「これを追加」を追加すると、イミディエイトウィンドウにstrCritの
内容が出力されますので、それに間違いがないか確認なさってはどうですか?
実行時エラー`3125`:
はstrCritの内容が不適当である。旨のエラーみたいですから。

判らなければ、出力された内容をここに書き込んでみては?
その方がアドバイスをもらい易いですよ。

【10768】Re:エラーが解決できません
回答  Gin_II  - 08/11/20(木) 11:39 -

引用なし
パスワード
   >     strCrit = "部門名フリガナ like `[" & strItem & "]*`"
>     strCrit = "リース会社フリガナ like `[" & strItem & "]*`"

失礼しました。必要なものまで削除させちゃいましたね。

strCrit = "部門名フリガナ like '[" & strItem & "]*'"
strCrit = "リース会社フリガナ like '[" & strItem & "]*'"

元のコードだと、シングルクォーテーションがなんかヘンです。

【10772】Re:エラーが解決できません
質問  初心者  - 08/11/20(木) 15:11 -

引用なし
パスワード
   早速のお返事と迅速な対応、とても感謝しております。

Gin_IIさんが教えて頂いたとおりに、プログラムを入力しましたら、エラーは無事に消す事が出来ました。
本当にありがとうございました。

エラーは消えて、フィルターの検索条件である「」部門名フリガナ」のフィルター検出はできるようになりましたが・・・

フィルターにリース会社ともう一つ追加で銀行関係を追加しようと思っています。

上記のプログラムでリース会社の検出のVBAを入力しているのですが、検出できません。下記のプログラムでは検出されないのでしょうか?

〜〜省略〜〜

 Else
    strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
    strCrit = "リース会社フリガナ "

また、もう一つフィルターにある「銀行」での検索条件を追加しようと思っておりますが、そのようにしたらよいのでしょうか。

一応、参考書を読んで頑張っていますが、未だに先に進む事が出来ません。。。

もし、お時間がありましたらご教授の方を宜しくお願い致します。

【10774】Re:エラーが解決できません
発言  Gin_II  - 08/11/20(木) 16:20 -

引用なし
パスワード
   > フィルターにリース会社ともう一つ追加で銀行関係を追加しようと思っています。

同じフォーム(同じレコードソース)に、リース会社・銀行関係が入っている
のでしょうか?

フィルタ対象というコントロールは、何を使っているのでしょうか?
オプショングループであれば、そこに銀行関係を追加して、

> If Me.フィルタ対象 = 1 Then
>   strCrit = "部門名フリガナ like '[" & strItem & "]*'"
>   StrOrder = "部門名フリガナ"
> Else
>   strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
>   StrOrder = "リース会社フリガナ"
> End If

Select Case Me!フィルタ対象
  Case 1
    strCrit = "部門名フリガナ like '[" & strItem & "]*'"
    StrOrder = "部門名フリガナ"
  Case 2
    strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
    StrOrder = "リース会社フリガナ"
  Case 3
    strCrit = "銀行関係フリガナ like '[" & strItem & "]*'"
    StrOrder = "銀行関係フリガナ"
End Select

のようにすれば大丈夫だと思います。


> 上記のプログラムでリース会社の検出のVBAを入力しているのですが、検出できません。

もしかして、
・部門名
・リース会社
・銀行関係
は、それぞれ別のテーブルとかですか?

【10776】Re:エラーが解決できません
お礼  初心者  - 08/11/20(木) 16:48 -

引用なし
パスワード
   ▼Gin_II さん:
>> フィルターにリース会社ともう一つ追加で銀行関係を追加しようと思っています。
>
>同じフォーム(同じレコードソース)に、リース会社・銀行関係が入っている
>のでしょうか?
>
>フィルタ対象というコントロールは、何を使っているのでしょうか?
>オプショングループであれば、そこに銀行関係を追加して、
>
>> If Me.フィルタ対象 = 1 Then
>>   strCrit = "部門名フリガナ like '[" & strItem & "]*'"
>>   StrOrder = "部門名フリガナ"
>> Else
>>   strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
>>   StrOrder = "リース会社フリガナ"
>> End If
>
>Select Case Me!フィルタ対象
>  Case 1
>    strCrit = "部門名フリガナ like '[" & strItem & "]*'"
>    StrOrder = "部門名フリガナ"
>  Case 2
>    strCrit = "リース会社フリガナ like '[" & strItem & "]*'"
>    StrOrder = "リース会社フリガナ"
>  Case 3
>    strCrit = "銀行関係フリガナ like '[" & strItem & "]*'"
>    StrOrder = "銀行関係フリガナ"
>End Select
>
>のようにすれば大丈夫だと思います。
>
>
>> 上記のプログラムでリース会社の検出のVBAを入力しているのですが、検出できません。
>
>もしかして、
>・部門名
>・リース会社
>・銀行関係
>は、それぞれ別のテーブルとかですか?


Gin_II様へ
本当にありがとうございます。
上記のプログラムを修正したら、無事に動くようになりました。
本当にありがとうございます。

まだ、Access,VBAをはじめて数日で困っていたところでした。とても感謝しています。

まだまだ、データベースの製作途中で、分からない事がたくさんありますが、また、機会があったらご教授をして頂けたら嬉しいです。
本当にありがとうございました。
めげずに頑張っていきます。

648 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078197
(SS)C-BOARD v3.8 is Free