【发布时间】:2020-10-28 07:45:21
【问题描述】:
首先我很抱歉英语不好,但我会尽力而为。
我有一个在 VBA 宏中运行的 oracle 查询,我需要将 sql 选择中的日期设置为与工作表单元格相关的变量,我已经设法使 sql 咨询工作。
非常感谢您对此的帮助,我真的被困住了,工作代码失败了。
Private Sub cmdConexaoBD_Click()
Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Integer
'define a conexão com o banco de dados
Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.Open "Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=database;uid=username;pwd=password;"
Set rs = New ADODB.Recordset
sql = "SELECT NUMOS,MIN(DTINICIOOS),MAX(DTFIMOS),MAX(DTFIMOS)-MIN(DTINICIOOS) FROM PCMOVENDPEND WHERE DATA >= TRUNC(SYSDATE) GROUP BY NUMOS"
rs.Open sql, cn
Range("A1").Value = "OS"
Range("B1").Value = "DT"
Range("C1").Value = "DT"
Range("D1").Value = "TEMPO"
i = 1
If Not rs.EOF Then
Do While Not rs.EOF
Range("A" & i + 1).Value = rs(0)
Range("B" & i + 1).Value = rs(1)
Range("C" & i + 1).Value = rs(2)
Range("D" & i + 1).Value = rs(3)
rs.MoveNext
i = i + 1
Loop
End If
cn.Close
End Sub
WHERE DATA >= TRUNC(SYSDATE)“DATA”实际上是日期(葡萄牙语),我想将日期设置为引用工作表单元格的变量,所以我可以在电子表格中更改它并导入此类数据日期而不更改代码。
我希望我说清楚了,谢谢!
【问题讨论】:
-
显示数据类型和sysdate值类型会很好。
-
说 "DATA" 实际上是日期(它是葡萄牙语) 是自相矛盾的。
DATE值没有任何格式或语言,它存储为内部字节值。您看到的是(默认)display 格式/语言。那么DATA列的数据类型是什么?