匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

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

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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2019/03/12 13:56:59
  • 終了: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を一旦勉強します。
    ありがとうございました!

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません