したがって、ユーザーが変更できる開始日と終了日を持つExcelシートがあります。私は、ユーザーがその情報を取得するために自分のクエリを入力できるセルを持つ2番目のシートを持っています。これらのセルを参照できるように、startDateとenDateをクエリに割り当てました。私が抱えている問題は、Excelからクエリを抽出しているため、開始日を参照せずに終了するということです。これを解決するために何かできることはありますか?ここでは、クエリは次のとおりです。VBAを使用してSQLコードの日付を持つセルを参照する必要があります
select system_date where system_date >= ' " & startDate & "" and
system_date <= "" & endDate & "# and action_id = 15 and log_desc not
like '%svc_openlink_p%' order by system_date
ここでは、コードは次のとおりです。
Sub Button1_Click()
Dim dbConnectStr As String
Dim dbConnectStr1 As String
Dim objmyconn As ADODB.Connection
Set objmyconn = New ADODB.Connection
Dim recordCount As Long
Dim sh1 As Worksheet, s2 As Worksheet
Dim j As Long, N As Long, r1 As Range
Dim dat As Variant
Dim Rng As Range
Dim startDate As String
Dim endDate As String
Dim dataName As String
Dim passWord As String
Dim serverName As String
Dim qryN As String
'code for the dates
startDate = Format(Worksheets("TotalExtraction").Range("C6").Value2, "dd-mmm-yyyy")
endDate = Format(Worksheets("TotalExtraction").Range("C8").Value2, "dd-mmm-yyyy")
'code for assigment
dataName = (Range("dataName").Value)
passWord = (Range("password").Value)
serverName = (Range("server").Value)
qryN = (Range("Query").Text)
dbConnectStr = "Provider=msdaora;User Id=" & Uname
dbConnectStr1 = "Provider=msdaora;User Id='" & dataName & "';Data Source='" & serverName & "';Pwd='" & passWord & "'"
objmyconn.ConnectionString = dbConnectStr & dbConnectStr1
objmyconn.Properties("Prompt") = adPromptAlways
objmyconn.Open dbConnectStr 'ConnectionString'
'Declare variables'
'Set objmyconn = New ADODB.Connection
Set Sql = New ADODB.Command
Set ds = New ADODB.Recordset
Dim strsql As String
Dim fld As ADODB.Field
Dim i As Long
i = 2
Worksheets("IndividualUsers").Activate
ActiveSheet.Range("B4:M30000").Clear
'Set and Execture SQL Command
Set Sql.ActiveConnection = objmyconn
Sql.CommandText = qryN
MsgBox qryN
Sql.CommandType = adCmdText
Sql.Execute
ワークブックの名前付き範囲として開始日と終了日を設定できるため、ユーザーは単にクエリ文字列で参照できるだけですか? – Jordan
「開始日を参照して終了しない」とはどういう意味ですか? – Kyle
実際には、日付の書式に問題が生じることがあります。あなたは単に 'Replace'を使うことはできませんか?例えば'QryN = Replace(qryN、" startDate "、startDate)、" endDate "、endDate)' – Jordan