Excel VBA質問箱 IV

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

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


4356 / 13646 ツリー ←次へ | 前へ→

【57138】列を指定した検索について Excel 08/7/28(月) 17:45 質問[未読]
【57145】Re:列を指定した検索について kanabun 08/7/28(月) 20:41 発言[未読]

【57138】列を指定した検索について
質問  Excel  - 08/7/28(月) 17:45 -

引用なし
パスワード
   検索について質問します。
下のような構文でアクセスDBから情報をワークシート”DATA”にひっぱて来て、
このシート上の”C”列に各都道府県のデータがあります。
ここで”C"列上の検索・・例えばTextboxに東京と入力して検索CommandButtonで検索
してListboxに表示させるには、どうすればよいでしょうか、よろしくご指導お願いします。
------------------------------------------------------------------------------
Private Sub CommandButton4_Click()
Dim count_DATA As Integer
Dim IRow As Long

'シートクリア
Worksheets("DATA").Activate
Worksheets("DATA").Range(Cells(2, 1), Cells(500, 49)).Value = ""

'アクセスから情報取り込み
Dim myCon As ADODB.Connection
Dim myRS As ADODB.Recordset
 
Set myCon = New ADODB.Connection
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=\c\管理DB.mdb"

 Set myRS = New ADODB.Recordset
 
 On Error Resume Next 'DB空の処理
  
 myRS.Open "データベース", myCon, adOpenStatic, adLockOptimistic
 
 myRS.Update
 
 myRS.MoveFirst
 Do Until myRS.EOF = True
  
   count_DATA = 2
   Do Until Worksheets("DATA").Cells(count_DATA, "A").Value = ""
    count_DATA = count_DATA + 1
   Loop
   
   Worksheets("DATA").Cells(count_DATA, "A").Value = myRS![番号]
   Worksheets("DATA").Cells(count_DATA, "B").Value = myRS![日付]
   Worksheets("DATA").Cells(count_DATA, "C").Value = myRS![エリア]
                 〜  
   Worksheets("DATA").Cells(count_DATA, "AN").Value = mmyRS![Memo]
    
  myRS.MoveNext
 Loop

 Set myRS = Nothing

myCon.Close: Set myCon = Nothing

'ソート
count_DATA = 2
Do Until Worksheets("DATA").Cells(count_DATA, "A").Value = ""
 count_DATA = count_DATA + 1
Loop
Worksheets("DATA").Range(Cells(2, "A"), Cells(count_DATA, "AW")).Sort
Key1 = Worksheets("DATA").Cells(2, "AW")

'表示
With Worksheets("DATA")
 IRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
End With

With ListBox1
.ColumnHeads = True
.ColumnCount = 4
.ColumnWidths = "25;55;40;60;"
'.Text = "DATA!A2:J100"
.RowSource = "DATA!A2:J100"

End With
End Sub

【57145】Re:列を指定した検索について
発言  kanabun  - 08/7/28(月) 20:41 -

引用なし
パスワード
   ▼Excel さん:
コンニチハ。

>このシート上の”C”列に各都道府県のデータがあります。
>ここで”C"列上の検索・・例えばTextboxに東京と入力して検索CommandButtonで検索
>してListboxに表示させるには、どうすればよいでしょうか、

最終的な質問以前に、
提示のコード、コンパイルを通らないところがありますね。
あと、データをダウンロードするだけだから、UpDateは要らないのでは?

おもいきって簡略化して、
mdbからダウンロードしたテーブルを AW列でソートして、
ListBoxにリストするまでは、こんな感じで動きませんかね?

ご質問の件はそれからでも遅くはないと思いまして。。

Private Sub CommandButton4_Click()
  'シートクリア
  With Worksheets("DATA")
    .Range(.Cells(2, 1), .Cells(500, 49)).ClearContents
  End With
  
  Dim myCon As ADODB.Connection
  Dim myRS As ADODB.Recordset
  
  Set myCon = New ADODB.Connection
  myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
       & "Data Source=\c\管理DB.mdb"
 
  Set myRS = New ADODB.Recordset
 
  On Error Resume Next 'DB空の処理
  
  myRS.Open "データベース", myCon
   
  'アクセスから情報取り込み
  Worksheets("DATA").Range("A2").CopyFromRecordset myRS
  myRS.Close
  Set myRS = Nothing
 
  myCon.Close: Set myCon = Nothing
 
  Dim r As Range
  Set r = Worksheets("DATA").Range("A2").CurrentRegion
  Set r = Intersect(r, r.Offset(1))
  'ソート
  r.Sort Key1:=r.Item(1, "AW"), Header:=xlNo
  
  With ListBox1
    .ColumnHeads = True
    .ColumnCount = 4
    .ColumnWidths = "25;55;40;60;"
    .RowSource = r.Address(External:=True)
  End With

End Sub

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