當前位置:首頁 » 數據倉庫 » vbaaccess讀取資料庫連接
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

vbaaccess讀取資料庫連接

發布時間: 2022-11-22 03:56:24

❶ vba如何調用Access的查詢,並顯示查詢結果

1、首先,在電腦中找到並打開Access資料庫,如下圖所示。

❷ 請教怎麼在access中用VBA導入excel數據到access庫

編程思路
1、打開excel文件,並讀取Excel的數據
2、連接access資料庫
3、存入excel資料庫(插入操作)
具體的語句網上有很多,樓主網路一下, 然後根據你的需求改一下。

❸ 如何用vba代碼將access資料庫連接求代碼

下面這段程序是連接資料庫,並將excel表格內容寫入資料庫。代碼如下:
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 = "INSERT INTO fymxb(小區ID,建築ID,費用ID,分包性質,工作量,單價合計_中標,人工費_中標, 主材費_中標, 輔材費_中標, 機械費_中標, 管理費_中標, 利潤_中標,規費_中標,稅金_中標,合價_中標,單價合計_標准成本,人工費_標准成本,主材費_標准成本,輔材費_標准成本,機械費_標准成本,管理費_標准成本,利潤_標准成本,規費_標准成本,稅金_標准成本,合價_標准成本,單價合計_實際成本,人工費_實際成本,主材費_實際成本,輔材費_實際成本,機械費_實際成本,管理費_實際成本,利潤_實際成本,規費_實際成本,稅金_實際成本,合價_實際成本) VALUES (" & XQID & ", " & JZID & ", " & FYID & ", '" & FBXZ & "'"
For i = 1 To 31
Sql = Sql & "," & SARR(i)
Next i
Sql = Sql & " )"

cONn.Execute Sql
hh = hh + 1
Loop
End Sub

❹ access2007 如何在VBA連接自身的數據

1,需要添加新的引用

2,連接資料庫的方式已經不在是:
「provider=microsoft.jet.oledb.4.0;data source=。。。。」
新的連接方式為:
「Provider=Microsoft.ACE.OLEDB.12.0;Data Source=。。。」

例如:

Dim cn As New ADODB.Connection
Dim strCn As String

Dim strSQL As String
Dim rs As New ADODB.Recordset

Stpath = ThisWorkbook.Path & Application.PathSeparator & "SPSDI.accdb" '設定access文件路徑
cn.Provider = "Microsoft.ACE.OLEDB.12.0"
strCn = "Data Source =" & Stpath & ";Jet OLEDB:Database Password=" & ""
cn.Open (strCn)

strSQL = "SELECT * FROM table"

rs.Open strSQL, cn, adOpenStatic

❺ 請教怎麼在access中用VBA導入excel數據到access庫

方法一:在eccel VBA編輯器編寫代碼,使用FOR循環導入:
Sub 利用Excel的VBA將數據寫入Access()
'定義ADODB 連接Access資料庫
Dim Cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim strCon As String
Dim strFileName As String '資料庫文件名

strFileName = InputBox("請輸入文件路徑及文件名:", "Excel傳遞數據至Access", "E:\ExcelTest\Staff.mdb")
'連接字元串,我這里是Access2010,所提供者參數為:Provider=Microsoft.ACE.OLEDB.12.0;
'如果此參數不能使用,根據自己的電腦修改這個字元串
'至於連接至的資料庫名,根據自己的電腦修改,或用一個對話框或其他方式將此值傳遞進程序
strCon = "provider=Microsoft.jet.OLEDB.4.0;" _
& "Data Source=" & strFileName & ";"
Cnn.Open strCon
Rs.ActiveConnection = Cnn
Rs.LockType = adLockOptimistic

Rs.Open "Employee" '假設表為Employee

'定義Excel表中的數據區域以寫入Access
Dim Sht As Worksheet
Dim Rn As Long
Dim Cn As Long
Set Sht = ThisWorkbook.Sheets("Sheet1")
'假設將 Sheet1 表的 2-6行的1、2、3列寫入Access表
For Rn = 2 To 6
Rs.AddNew
Rs!num = Sht.Cells(Rn, 1) 』num,name,department是資料庫中指定表的欄位
Rs!Name = Sht.Cells(Rn, 2)
Rs!department = Sht.Cells(Rn, 3)
Rs.Update
Next Rn
MsgBox "完成!"

Rs.Close
Cnn.Close
Set Rs = Nothing
Set Cnn = Nothing
Set Sht = Nothing
End Sub

方法二:在access VBA編輯器中編寫代碼
Sub ExcelToAccess()
DoCmd.TransferSpreadsheet acImport, , "Staff", "E:\ExcelTest\Employee.xls", True, "Sheet1!" 『DoCmd.TransferSpreadsheet是access編輯器中函數

End Sub

❻ VBA 連接Access資料庫查詢

你數據對不上是少數據嗎?你的語句中用了like,但沒有通配符,試試修改
sqls = "SELECT * FROM NDYX where FIELD(0) like'*" & a & "*'" '定義SQL查詢命令字元串"

❼ 如何用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方法可以實現資料庫的連接。

❽ Excel VBA連接ACCESS資料庫

stpath=ThisWorkbook.Path&Application.PathSeparator&"attendance.accdb"
CN.Open"Provider=Microsoft.ACE.OLEDB.12.0;DataSource="&stpath&";JetOLEDB:DatabasePassword=cjw123456"

供參考。

❾ 如何用vba代碼將access資料庫連接求代碼

>>.用vba連接ACESS:
Set Conn= Server.CreateObject("ADODB.Connection")
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("sample.mdb")
Conn.Open

>>.用vba連接EXCEL,打開EXCEL記錄集:
Set connExcel = Server.CreateObject("ADODB.Connection")
connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath( "InputExcel\sample.xls") &";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';"
connExcel.Open connStr
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "Select * From [sheet1$]", connExcel, 0, 1

>>.vba數據處理[轉載]:
===============================================
用Excel+VBA+SQL Server進行數據處理

使用Excel+VBA+SQL Server進行數據處理是一種簡單有效方法,掌握以下基礎知識實現快速入門(掌握excel/vba/sqlserver各1%內容,你就能成為數據處理高手的:)):

一、Excel基礎知識
了解工作簿(Workbook)、工作表(Worksheet)、單元格(Cell)等的基本概念,熟悉一些基本操作。

二、SQL Server基礎知識
參見
1、資料庫有關概念:資料庫、表、記錄、欄位
A)資料庫(Database)
B)表(Table)、記錄(行,Row,Record)、欄位(列,Column,Field)...

2、常見數據操作的SQL命令:select, insert , update ,delete

三、VBA基礎知識:
1、基本概念。
2、基本控制結構:
·順序結構:程序按順序執行;
·分支結構命令:

if 條件 then
<如果條件成立執行本語句塊>
end if

或:

if ... then
...
else
...
end if

或:

if ... then
...
elseif ...
...
else
...
end if
等。。

·循環結構命令:

for i=? to ??
...
next



do while ...
...
loop

3、在VBA中操縱對象,先理解操縱EXCEL工作表和資料庫對象:

將值寫入EXCEL單元格,如:thisworkbook.worksheets("sheet1").cells(1,2)=1234444

從EXCEL單元格取得數值,如:x=thisworkbook.worksheets("sheet1").cells(1,2)

資料庫操作:

cn.open ...(建立數據連接對象)
rs.open ... (建立數據集對象)
x=rs("...") (讀取數值)
rs.close (關閉rs)
cn.close (關閉cn)

cn.execute (執行sql語句)

...

四、例子

sub test() '定義過程名稱
Dim i As Integer, j As Integer, sht As Worksheet 'i,j為整數變數;sht 為excel工作表對象變數,指向某一工作表
Dim cn As New ADODB.Connection '定義數據鏈接對象 ,保存連接資料庫信息;請先添加ADO引用
Dim rs As New ADODB.Recordset '定義記錄集對象,保存數據表
Dim strCn As String ,strSQL as String '字元串變數

strCn = "Provider=sqloledb;Server=伺服器名稱或IP地址;Database=資料庫名稱;Uid=用戶登錄名;Pwd=密碼;" '定義資料庫鏈接字元串

'下面的語句將讀取數據表數據,並將它保存到excel工作表中:畫兩張表想像一下,工作表為一張兩維表,記錄集也是一張兩維表
strSQL = "select 欄位1,欄位2 from 表名稱" '定義SQL查詢命令字元串
cn.Open strCn '與資料庫建立連接,如果成功,返回連接對象cn
rs.Open strSQL, cn '執行strSQL所含的SQL命令,結果保存在rs記錄集對象中
i = 1
Set sht = ThisWorkbook.Worksheets("sheet1") '把sht指向當前工作簿的sheet1工作表
Do While Not rs.EOF '當數據指針未移到記錄集末尾時,循環下列操作
sht.Cells(i, 1) = rs("欄位1") '把當前記錄的欄位1的值保存到sheet1工作表的第i行第1列
sht.Cells(i, 2) = rs("欄位2") '把當前欄位2的值保存到sheet1工作表的第i行第2列
rs.MoveNext '把指針移向下一條記錄
i = i + 1 'i加1,准備把下一記錄相關欄位的值保存到工作表的下一行
Loop '循環
rs.Close '關閉記錄集,至此,程序將把某數據表的欄位1和欄位2保存在excel工作表sheet1的第1、2列,行數等於數據表的記錄數

'下面的語句將讀取excel工作表數據,並將之簡單計算後存入資料庫,這里使用上面程序中的一些變數
'假設分別讀取工作表sheet1第5行至第500行的第8列和第9列已存在的數據,然後將它們相乘,並將積存入資料庫的某個表
strSQL="" '清空上面定義的變數
for i=5 to 500 '循環開始,i從5到500
strSQL=strSQL & "insert into 表名(欄位) values(" & sht.cells(i,8)*sht.cells(i,9) & ") ;" '構造SQL命令串
next
'至此生成一串SQL命令串,保存的內容大概為:insert into 表名(欄位) values(數值1);insert into 表名(欄位) values(數值2);...
cn.execute strSQL '執行該SQL命令串,如果SQL命令沒有錯誤,將在資料庫中添加501個記錄;也可以用rs.open strSQL,cn 執行
cn.close '關閉資料庫鏈接,釋放資源
end sub

=====================================

>>.聽說可以用一條語句實現記錄集導入excel表,而且不是用循環的,不知道是真是假,等待高手的回答。