首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

,帮忙呀。vba有关问题

2012-12-16 
各位高手,帮忙呀。vba问题各位高手,大家好。最近需要用vba连接postgresql,获取postgresql的数据。但是获取的

各位高手,帮忙呀。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 里面的是啥?


[其他解释]

引用:
Range("B6").Value 里面的是啥?


是sql语句:
  select * from test order by id,name,age,money......
[其他解释]
引用:
msgbox adoRs(4).value 或
msgbox adoRs("money").value或
msgbox adoRs(column-1).value 
试试


试过了,弹出的值是4。
另外,msgbox adoRs(column-1).value弹出的是上一个字段(age)的值。
[其他解释]
呵呵,俺后来用日文在日文网站找日本人帮忙看看,结果一群日本人还是讨论了下也没有搞定。

热点排行