Access VBA質問箱 IV

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

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


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

【5645】テーブルの並び替え mak 05/7/20(水) 9:53 質問[未読]
【5646】Re:テーブルの並び替え 小僧 05/7/20(水) 11:13 回答[未読]

【5645】テーブルの並び替え
質問  mak  - 05/7/20(水) 9:53 -

引用なし
パスワード
   初めて投稿します。
SQLでテーブルのレコードを並べ替えて表示したいのですが、うまくいきません。
色々探してみたのですが分かりませんでした。分かりましたらお教えください。
試した中の1例を記入します。

   mySQL = "SELECT * FROM 販売機別 ORDER BY 店舗名 ASC"
   
   Set cn = CurrentProject.Connection

   com.ActiveConnection = cn
   com.CommandText = mySQL
   com.Execute

よろしくおねがいします。

【5646】Re:テーブルの並び替え
回答  小僧  - 05/7/20(水) 11:13 -

引用なし
パスワード
   ▼mak さん:
こんにちは。

>試した中の1例を記入します。
>
>   mySQL = "SELECT * FROM 販売機別 ORDER BY 店舗名 ASC"
>   
>   Set cn = CurrentProject.Connection
>
>   com.ActiveConnection = cn
>   com.CommandText = mySQL
>   com.Execute
>
>よろしくおねがいします。

変数:mySQL の中身がアクションクエリでしたらこのコードで実行されると思われますが、
選択クエリなので結果をどう返すかが必要になってくると思われます。

「SELECT」したものを表示させたいのであれば、
普通はレコードセットに格納してフォームやレポートに表示させます。

余り汎用的な使い方ではありませんが、クエリを作成するのも手です。

Sub クエリで結果表示()
Dim mySQL As String
Dim cat As Object
Dim cn As ADODB.Connection
Dim com As New ADODB.Command

  Set cat = CreateObject("ADOX.Catalog")
  Set cn = CurrentProject.Connection
   
  mySQL = "SELECT * FROM 販売機別 ORDER BY 店舗名 ASC"
  
  cat.ActiveConnection = cn
  com.CommandText = mySQL
  cat.Views.Append "Q_Test", com
   
  cn.Close: Set cn = Nothing
  Set com = Nothing
  Set cat = Nothing
  DoCmd.OpenQuery "Q_Test"
  
End Sub

CreateObject("ADOX.Catalog") としてますが、
ADOXを参照設定すると、コードが書きやすくなると思われます。

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