accessvba資料庫
❶ 如何用vba代碼將access資料庫連接求代碼
Microsoft Office Access是由微軟發布的關系資料庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office 的系統程序之一。用vba代碼將access資料庫連接求代碼,代碼如下:
Sub FYMXDL()
Dim XQID As Integer
Dim JZID As Integer
Dim FYID As Integer
Dim FBXZ As String '分包性質
Dim DW As String
Dim SARR(1 To 31) As Double
Dim rst As New ADODB.Recordset
mYpath = ThisWorkbook.Path & "jzfydata.accdb"
Set cONn = CreateObject("ADODB.Connection")
cONn.ConnectionString = "Provider=Microsoft.Ace.OleDB.12.0;Data Source=" & mYpath
cONn.ConnectionString = cONn.ConnectionString & ";Jet OLEDB:Database "
cONn.Open
XQID = Cells(3, 2).Value
JZID = Cells(3, 5).Value
'清空改小區-建築的費用明細
sql = "delete from fymxb where 小區ID=" & XQID & " AND 建築ID = " & JZID
cONn.Execute Sql
Const kshh = 7
hh = kshh
Do While Cells(hh, 3).Value > 0
FYID = Cells(hh, 3).Value
FBXZ = Cells(hh, 11).Text
For i = 1 To 31
SARR(i) = Round(Cells(hh, 13 + i - 1).Value, 2)
Next i
Sql = Sql & "," & SARR(i)
Next i
Sql = Sql & " )"
cONn.Execute Sql
hh = hh + 1
Loop
End Sub
❷ 如何用vba將ACCESS窗體和查詢導入另一個資料庫中
Access是微軟Office組件的資料庫軟體,使用它可以進行簡單的資料庫軟體的開發。但Access的圖表功能和數據分析功能不如Excel強大,常用的做法可以將Access中的數據導入Excel中再進行處理。
代碼利用ADO組件可以方便地對各種數據進行連接和訪問。ADO組件中的Connection對象可以實現對資料庫的連接,並可以快速實現SQL語句的執行,然後再用VBA將SQL查詢的結果輸出到Excel表格中。
打開VBE窗口,選擇菜單「工具」一「引用」,勾選MicrosoftActiveXDataObjects2.8Library,並單擊「確定」按鈕。
利用ADO連接資料庫ADO的全稱是ActiveXDataObject,是一個用於存取數據源的COM組件,用以快速實現各種資料庫的連接、讀取、寫入。在ADO組件中有一個Connection對象,利用Connection對象的Open方法可以實現資料庫的連接。
❸ 用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
❹ Access VBA 創建新MDB資料庫
'下列ACCESS窗體按鈕單擊事件過程(VBA代碼)實現在當前目錄下創建一個新MDB資料庫,
'並在該資料庫內新建一張學生表同時插入一條學生信息。
'有關代碼需要引用ADO數據訪問對象及其擴展ADOX類庫
'引用方法:
'打開VBE窗口
'引用ADO—— 菜單"工具"-> "引用 "-->勾選 Microsoft ActiveX Data Objects 2.1 Library 或更高版本,點擊確定按鈕
'引用ADOX—— 菜單"工具"-> "引用 "--> 勾選 Microsoft ADO Ext.2.7 for DDL ado Security 或更高版本,點擊確定按鈕
Private Sub Command0_Click()
Dim MyMDB As New ADOX.Catalog '聲明並示例化一個ADOX.Catalog對象
Dim cn As New ADODB.Connection '聲明並示例化一個ADO連接對象
Dim cnStr As String '聲明一個連接字元串變數
'在當前目錄下創建一個名為「NewAccessDB」的ACCESS資料庫
MyMDB.Create ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\NewAccessDB.mdb" & ";")
'設置連接上述代碼新創建的資料庫之連接字元串
cnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\NewAccessDB.mdb" & ";"
'打開與該資料庫的連接
cn.Open cnStr
'新建一張學生表
cn.Execute "create table students(sname text(30),sex text(1),birth date)"
'向學生表插入一條數據
cn.Execute "insert into students values('張三','男',#1998-02-03#)"
'關閉連接
cn.Close
'提示操作成功
MsgBox "新資料庫已成功創建,並在其中建立了一張學生表同時並插入一條學生信息"
End Sub
❺ VBA查詢access資料庫
庫名與表名,你自己改下啊!
一、連接2003
SubAC()
DimcnnAsNewConnection
DimrsAsNewRecordset
DimsqlAsString
DimqxAsString
qx="金牛"
cnn.Open"Provider=Microsoft.Jet.Oledb.4.0;dataSource="&ThisWorkbook.Path&"資料庫.mdb"
sql="select*from[宏站]"
rs.Opensql,cnn
'復制欄位名
Fori=1Tors.Fields.Count
Cells(1,i)=rs.Fields(i-1).Name
Nexti
'復制全部數據
Range("A2").CopyFromRecordsetrs
rs.Close
cnn.Close
EndSub
二、連接2007
SubAC()
DimcnnAsNewConnection
DimrsAsNewRecordset
DimsqlAsString
DimqxAsString
qx="金牛"
cnn.Open"Provider=Microsoft.Ace.OleDB.12.0;dataSource="&ThisWorkbook.Path&"資料庫.accdb"
sql="select*from[宏站]'"
rs.Opensql,cnn
[a1].CopyFromRecordsetrs
EndSub
記得引用:
❻ ACCESS里打開某資料庫後如何用VBA引用表、記錄及欄位值
在
Access
2003
中,您可以使用
Visual
Basic
編輯器查看當前選擇的
VBA
引用。為此,請按照下列步驟操作:
啟動
Access
2003。
打開一個
Access
資料庫。
按
ALT+F11
打開
Visual
Basic
編輯器。
在
Visual
Basic
編輯器窗口中,單擊「工具」菜單上的「引用」。在「引用」對話框中,您可以看到所選的引用。注意
當選擇了一個引用後,您還可以查看有關使用該引用必須載入的文件的信息。相關文件可能是類型庫、對象庫或控制項庫。每個引用的相關文件會根據「引用」對話框中顯示的信息進行載入。但是,如果找不到相應的文件,Access
2003
將在計算機上的其他位置搜索它。對於所選的每個
VBA
引用,Access
2003
都會執行以下任務:
Access
驗證是否已載入了引用的文件。
如果當前未載入引用的文件,Access
將驗證
RefLibPaths
注冊表項是否存在。
如果
RefLibPaths
注冊表項存在,Access
將搜索與引用具有相同名稱的命名值。如果有匹配的命名值,則
Access
將從命名值中提及的路徑載入引用。注意
您可以將
RefLibPaths
注冊表項手動添加到注冊表中,然後可以添加
RefLibPaths
注冊表項下任何外接程序或任何庫的名稱和位置。為此,請按照下列步驟操作。
單擊「開始」,然後單擊「運行」。
在「打開」框中,鍵入
regedit,然後單擊「確定」。
在「注冊表編輯器」窗口中,找到以下注冊表項:HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Access
右鍵單擊「Access」注冊表項,指向「新建」,然後單擊「項」。
將新創建的項命名為
RefLibPaths。
單擊「RefLibPaths」。
右鍵單擊右窗格中的任意位置,然後單擊「字串值」。
使用與
VBA
引用相同的名稱命名新創建的字元串值。
右鍵單擊您在第
8
步中創建的字元串值,然後單擊「修改」。
在「編輯字元串」對話框中,鍵入必須載入的文件的位置以與
VBA
中的引用對應。注冊表值名稱必須是文件名加擴展名。位置(數值數據)必須是路徑加文件名。例如,如果設置對
Northwind
示例資料庫的引用,則可以添加以下值:
數值名稱:Northwind.mdb
數值數據:C:\Program
Files\Microsoft
Office\Office11\Samples\Northwind.mdb
重復第
7
步到第
10
步,將適當的外接程序或庫的名稱和位置作為字元串值添加。
在「文件」菜單上,單擊「退出」。如果
RefLibPaths
注冊表項不存在或未包含正確的引用,則
Access
使用「SearchPath」API
搜索引用的文件。將執行以下搜索:
搜索范圍說明
應用程序目錄
Msaccess.exe
的位置。
當前目錄在「文件」菜單上單擊「打開」時所看到的目錄。
系統目錄
Windows
文件夾或
WINNT
文件夾中的
System
文件夾和
System32
文件夾。
WinDir
操作系統文件在其中運行的文件夾。這通常是
Windows
文件夾或
WINNT
文件夾。
PATH
環境變數此系統變數包含系統可直接訪問的一組文件夾。Microsoft
Windows
NT
4.0:在控制面板中,雙擊「系統」,然後單擊「環境」選項卡。PATH
變數顯示在「系統變數」列表中。Microsoft
Windows
2000
或
Microsoft
Windows
Server
2003:在控制面板中,雙擊「系統」,單擊「高級」選項卡,然後單擊「環境變數」。PATH
顯示在「系統變數」列表中。
文件目錄包含
.mdb
文件、.mde
文件、.adp
文件或
.ade
文件的文件夾和任何子文件夾。注意
如果您要引用的文件位於上表中提到的任何目錄中,則
Access
不需要
RefLibPaths
注冊表項。如果
Access
2003
無法找到相關引用,當您編譯項目或嘗試運行某個過程時,將收到以下錯誤信息:
Your
Microsoft
Office
Access
database
or
project
contains
a
missing
or
broken
reference
to
the
file
file
name.*
To
ensure
that
your
database
or
project
works
properly,
you
must
fix
this
reference.
注意
在資料庫已打開的情況下,對於每個無法找到的引用,您都會收到一次前面提及的錯誤信息。例如,如果您打開了
MyDatabase.mdb
並且
MyDatabase.mdb
丟失了對
Microsoft
Calendar
控制項和
Microsoft
DAO
庫的引用,則您會收到兩條錯誤信息,丟失的每個引用對應一條錯誤信息。如果您未修復這些引用,那麼當您關閉資料庫然後再重新打開時,您將再次收到這些錯誤信息。如果您修復了這些引用並保存了資料庫,則下次打開該資料庫時就不會收到這些錯誤信息了。BrokenReference
屬性Access
的
Application
對象具有一個
BrokenReference
屬性,該屬性可以告訴您是否有任何引用出現了錯誤。若要檢查
BrokenReference
屬性,請按照下列步驟操作:
啟動
Access
2003。
打開一個
Access
資料庫。
按
ALT+F11
打開
Visual
Basic
編輯器。
按
CTRL+G
組合鍵打開「立即」窗口。
在「立即」窗口中,鍵入以下命令,然後按
Enter
鍵:?Application.BrokenReference請注意,如果存在丟失的引用,Application
對象的
BrokenReference
屬性將返回「True」。否則,BrokenReference
屬性將返回「False」。
❼ VBA 連接Access資料庫查詢
你數據對不上是少數據嗎?你的語句中用了like,但沒有通配符,試試修改
sqls = "SELECT * FROM NDYX where FIELD(0) like'*" & a & "*'" '定義SQL查詢命令字元串"