匿名質問者

訳あって、エクセルでSQLを動かしたいです。

SQLでは
SELECT xxxxx,data,MIN(time) As times
From xxxxx
WHERE ●●●="●●●"
GROUP BY xxxxx,data;

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2019/03/19 14:00:06
匿名質問者

質問者から

匿名質問者2019/03/13 07:49:52

実際に今書いているVBAが途中なのですが、

Sub createInsertSql()

Dim newbook As Workbook

Dim currentCell As Range

Dim srcSheet As Worksheet

Set srcSheet = ActiveSheet

Dim targetRange As Range

Set targetRange = srcSheet.UsedRange


Dim head As String

head = "SERECT " & srcSheet.Name & " ("

Dim first As Boolean

first = True

Dim currentColumnIndex As Integer

For currentColumnIndex = 1 To targetRange.Columns.Count

If (first) Then

first = False

Else

head = head & "xxxxx,data,MIN(time)"

End If

Set currentCell = srcSheet.Cells(1, currentColumnIndex)

head = head & currentCell.Value

Next

head = head & ") "

Set newbook = Workbooks.Add

Dim currentRowIndex As Integer

For currentRowIndex = 2 To targetRange.Rows.Count

Dim sql As String

sql = head & "values ("

first = True

For currentColumnIndex = 1 To targetRange.Columns.Count

If (first) Then

first = False

Else

sql = sql & ","

End If

Set currentCell = srcSheet.Cells(currentRowIndex, currentColumnIndex)

If IsNull(currentCell) Or Trim(currentCell.Value) = "" Then

sql = sql & "null"

ElseIf IsNumeric(currentCell.Value) Then

sql = sql & currentCell.Value

Else

sql = sql & "'" & currentCell.Value & "'"

End If

Next

sql = sql & ");"

newbook.ActiveSheet.Cells(currentRowIndex - 1, 1).Value = sql

Next

End Sub

回答0件)

回答はまだありません

  • 匿名回答1号
    匿名回答1号 2019/03/12 17:01:05
    >SQLでは
    >SELECT xxxxx,data,MIN(time) As times

    >実際に今書いているVBAが途中なのですが、

    >Dim head As String
    >head = "SERECT " & srcSheet.Name & " ("

    head = "SERECT " &

    head = "SELECT " &
    気になったので、コメントで。

    あと、SQLを動かしたい気持ちはわかったのですが、
    質問から、何を作成したいのかが?
    私の理解不足でわからなかったです。
  • 匿名回答2号
    匿名回答2号 2019/03/12 23:11:44
    SQL使いたいなら素直にSQLを使いましょう

    ADOを使えばEXCELファイルの中身をデータベース化して
    直接SQLが発行できるようになります
  • 匿名質問者
    匿名質問者 2019/03/13 11:02:32
    分かりづらくてすみません、エクセル表データより、必要情報のみを抽出したいと思っております。

    ADOを一旦勉強します。
    ありがとうございました!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません