各位高手,帮忙呀。vba问题
各位高手,大家好。最近需要用vba连接postgresql,获取postgresql的数据。但是获取的数据如果是number类型的话,如果后面跟4个0,那么4个0会自动被干掉,例:
数据库中为:40000 实际搜出为:4。
这是为什么呀?以下是我从网上找到的连接postgresql的代码:
Option Explicit
Sub subPgGetData()
Dim adoCn As New ADODB.Connection
On Error GoTo ErrLogin:
With adoCn
.Provider = "PostgreSQL OLE DB Provider"
.Properties("Data Source") = Range("B1").Value
.Properties("Location") = Range("B2").Value
.Properties("User ID") = Range("B3").Value
.Properties("Password") = Range("B4").Value
.Open
End With
On Error GoTo 0
Dim adoRs As New ADODB.Recordset
On Error GoTo ErrSql:
adoRs.Open Range("B6").Value, adoCn, adOpenForwardOnly, adLockReadOnly
On Error GoTo 0
Workbooks.Add
Cells.CopyFromRecordset adoRs
Cells.Columns.AutoFit
adoRs.Close: Set adoRs = Nothing
adoCn.Close: Set adoCn = Nothing
Exit Sub
ErrLogin:
MsgBox "" & vbCrLf & Err.Number & vbCrLf & Err.Description
Set adoCn = Nothing
Exit Sub
ErrSql:
MsgBox "" & vbCrLf & Err.Number & vbCrLf & Err.Description
Set adoRs = Nothing
adoCn.Close: Set adoCn = Nothing
Exit Sub
End Sub
[最优解释]
msgbox adoRs(4).value 或
msgbox adoRs("money").value或
msgbox adoRs(column-1).value
试试
[其他解释]
字段属性设置为TEXT试试……
[其他解释]
你的表结构是什么样?
你的代码中哪一个是这个NUMBER的。单步调试中结果是什么?
[其他解释]
由于上面的直接生成到了excel里面,所以,不好进行单步调试。后来直接用
msgbox adoRs(column).value 发现取出的数据是4。而表中的数据是 金额:40000。
表中此字段的类型是 number型的。
[其他解释]
msgbox adoRs(column).value 打断点看看column里面是多少
[其他解释]
adoRs里值是:
item11:
type adNuberic
value 4
[其他解释]
Range("B6").Value 里面的是啥?
[其他解释]