vba读取数据库数据
⑴ 用VBA如何获取access数据库中字段的数据类型
1、打开相应的access数据库。
2、在左边的对象栏里单击模块,观察右边的窗口,如果里面有模块,可以双击打开。如果没有新建一个模块,然后双击打开。
3、粘贴以下代码并运行、观察立即窗口。
PrivateSubaaaa()
DimTableNameAsString,FieldNameAsString,iAsInteger
TableName="tb1"'表名tb1
FieldName="编号"'字段名编号
SelectCaseCurrentDb.TableDefs(TableName)(FieldName).Type
CasedbBoolean
Debug.Print"是/否"
CasedbByte
Debug.Print"数字(字节)"
CasedbInteger
Debug.Print"数字(整型)"
CasedbLong
If(CurrentDb.TableDefs(TableName)(FieldName).AttributesAnddbAutoIncrField)=dbAutoIncrFieldThen
Debug.Print"自动编号(长整型)"
Else
Debug.Print"数字(长整型)"
EndIf
CasedbSingle
Debug.Print"数字(单精度)"
CasedbDouble
Debug.Print"数字(双精度)"
CasedbDecimal
Debug.Print"数字(小数)"
CasedbCurrency
Debug.Print"货币"
CasedbDate
Debug.Print"日期/时间"
CasedbText
Debug.Print"文本"
CasedbMemo
If(CurrentDb.TableDefs(TableName)(FieldName).AttributesAnddbHyperlinkField)=dbHyperlinkFieldThen
Debug.Print"超链接"
Else
Debug.Print"备注"
EndIf
CasedbGUID
Debug.Print"自动编号(自动复制ID)"
EndSelect
EndSub
⑵ 用VBA语言调用sql数据库数据到excel中
VBE 工具 引用,选中 Microsoft ActiveX Data Object 2.8 Library
我不清楚是不是UFDATA_013_2008表的VENDOR列的数据,如果不是,你自己改一下SQL语句吧,sql = "select VENDOR from UFDATA_013_2008"
Sub SQL数据导入()
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim str As String
Dim sql As String
Dim i As Integer
str = "Provider=SQLOLEDB;Data Source=SQLSERVER服务器名或IP;DATABASE=数据库;UID=用户名;PWD=密码"
cn.Open str
Set rs = New ADODB.Recordset
sql = "select VENDOR from UFDATA_013_2008"
rs.Open sql, cn, adOpenStatic, adLockOptimistic
If Not rs.EOF Then
For i = 1 To rs.RecordCount
Sheet2.Cells(i, 1).Value = rs.Fields(0).Value
Next i
rs.MoveNext
End If
rs.Close
cn.Close
End Sub
⑶ excel vba读取access数据库记录空值出错
使用Variant数据异常。
如果需要使用空值,请使用Variant数据类型,使用Nz()函数指定要用于Null的值。
在VBA中,唯一可以包含Null的数据类型是Variant。当字段的值分配给非变量时,都必须考虑该字段可能为空的可能性。