Access VBA質問箱 IV

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

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


8166 / 9994 ←次へ | 前へ→

【5008】Re:レコードの検索について
発言  小僧  - 05/5/11(水) 17:40 -

引用なし
パスワード
   ▼爺 さん:
お節介だとは思われますが、気づいた点をいくつか上げさせて頂きます。

>Dim name As String

VBAには「name」というプロパティ(ヘルプでNameで検索すると出て来ると思われます)が
存在するため、誤動作を防ぐためにも違う名前の変数にした方が良いと思われます。

>Dim no As Integer
上記と同じ理由で「Yes」「No」の「No」に間違われる可能性があります。

>name = ([Forms]![F_003Search]![コンボ5])
→ name = ([Forms]![F_003Search]![コンボ5].Value)
>moji = moji & fld & "  "
→ moji = moji & fld.Value & "  "

[コンボ5]、fld は省略された形であるので、[コンボ5]、 fld の何を使いたいのかを
明記するのを癖付けすると良いと思います。

>Set rs = New ADODB.Recordset
>rs.Open

「cn」 に対して行っているのと同様に、「rs」に対しても「Close」「Set rs = Nothing」と
オブジェクトの解放を行いましょう。
コードが終了しても自動的にオブジェクトが解放されるないものが存在する為です。
基本的には「Set」に対して「Nothing」で、「Open」に対して「Close」を行うのが良いと
思われます。

>あります。氏名(1)です。すみませんでした。

テーブルやフィールドの名前に記号をつけるのも避けたほうが無難かもしれません。
仮に「担当者」という名前のフィールドですと

>>rs.Find "[担当者] = '" & name & "'", no
>>rs.Find "担当者 = '" & name & "'", no

とどちらでも作動するコードが、氏名(1)ですと

>>rs.Find "[氏名(1)] = '" & name & "'", no
>>rs.Find "氏名(1) = '" & name & "'", no

下の方はエラーとなってしまいます。


「以下は自分だったらたこうする!」というコードです。
Find を用いずに Filter で担当者を抽出しております。

Public Sub 案件検討検索1()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim fld As ADODB.Field
Dim namae As String
Dim moji As String

  Set cn = Application.CurrentProject.Connection
  Set rs = New ADODB.Recordset

  rs.Open "T_003案件検討", cn, adOpenStatic, adLockReadOnly
  
  namae = [Forms]![F_003Search]![コンボ5].Value

  rs.Filter = "[氏名(1)] = '" & namae & "'"
  
  Do Until rs.EOF
  moji = ""
    For Each fld In rs.Fields
      moji = moji & fld.Value & "  "
    Next
    Debug.Print moji
  rs.MoveNext
  Loop
  
  rs.Close
  cn.Close
  Set rs = Nothing
  Set cn = Nothing
End Sub
275 hits

【5002】レコードの検索について 05/5/11(水) 15:43 質問
【5003】Re:レコードの検索について 小僧 05/5/11(水) 16:21 回答
【5004】Re:レコードの検索について 05/5/11(水) 16:33 質問
【5005】Re:レコードの検索について 小僧 05/5/11(水) 16:41 回答
【5006】Re:レコードの検索について 05/5/11(水) 16:49 質問
【5007】Re:レコードの検索について 小僧 05/5/11(水) 17:35 回答
【5008】Re:レコードの検索について 小僧 05/5/11(水) 17:40 発言
【5009】ありがとうございました 05/5/11(水) 17:40 お礼

8166 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078245
(SS)C-BOARD v3.8 is Free