OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ACCESS97:VBAでテーブル作成したい

  • すぐに回答を!
  • 質問No.198900
  • 閲覧数420
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 0% (0/18)

Access97を利用しています。
VBAでテーブル作成クエリーを、SQL文で直接記述しています。
書き方としては、SELECT 列名 INTO テーブル名 IN DBのパス
でいいと思うのですが、例えば会社の部門コードでループさせて、
部門の名前のついたテーブルを作成しようと思います。
さて、テーブル名やDBのパスをパラメータで渡すことは可能なのでしょうか?

うまくいかないのですが、もともとムリなことをやろうとしているのでしょうか?
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル10

ベストアンサー率 61% (75/121)

>VBAでテーブル作成クエリーを、SQL文で直接記述しています。

であれば、SQL文を動的に変化させることで対応可能なのではないでしょうか。

例えばこんな感じ

Sub TEST1()
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim StSQL1 As String, StSQL2 As String

Set DB = CurrentDb
StSQL1 = "select 部門コード,部門名 from 部門マスタ"
Set RS = DB.OpenRecordset(StSQL1)

Do Until RS.EOF
  StSQL2 = "SELECT フィールド1, フィールド2 INTO " & RS!部門名 & " FROM テーブル名"
  DB.Execute StSQL2
  RS.MoveNext
Loop

End Sub
補足コメント
maho0515

お礼率 0% (0/18)

早速ありがとうございます!

まさに教えていただいた通りのことを考えているのですが、
テーブル名は実は、システム年月と部署名を連結させたバリアント型の変数を
渡そうとしています。
例えば2002年1月の営業部だったら「T_0201営業」みたいなテーブル名称です。

単純に書き方が悪いんでしょうかね・・。
投稿日時 - 2002-01-15 19:32:57
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル10

ベストアンサー率 61% (75/121)

目的は、書き出すテーブル名を記述できれば良いことなので、以下のSQL文の "RS!部門名"と書かれているところを変化させてあげればいいことになります。 StSQL2 = "SELECT フィールド1, フィールド2 INTO " & RS!部門名 & " FROM テーブル名" >2002年1月の営業部だったら ...続きを読む
目的は、書き出すテーブル名を記述できれば良いことなので、以下のSQL文の
"RS!部門名"と書かれているところを変化させてあげればいいことになります。

StSQL2 = "SELECT フィールド1, フィールド2 INTO " & RS!部門名 & " FROM テーブル名"

>2002年1月の営業部だったら「T_0201営業」みたいなテーブル名称です。
日付型のデータがあるという仮定でまず"0201"を取り出すには
Format(日付データ,"yymm")
で取得できます。

ですから作成するSQL文は、文字列型変数"StTABLE_NAME"を宣言して

StTABLE_NAME = "T_ " & Format(日付データ,"yymm") & RS!部門名
StSQL2 = "SELECT フィールド1, フィールド2 INTO " & StTABLE_NAME & " FROM テーブル名"

となります。
尚、必要に応じて、Where句等を入れてください。

このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ