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

vbaado連接access資料庫

發布時間: 2022-05-18 02:25:22

① vba 通過ado 連接access

應該可以呀 連接的方法 跟vb連接資料庫一模一樣

一個例子

(前提:添加ADO 控制項)

Dim Conn As ADODB.Connection
Dim Rst2 As ADODB.Recordset
Set Conn = CurrentProject.Connection
Set Rst2 = New ADODB.Recordset
Rst2.Open "sql語句", Conn, adOpenForwardOnly, adLockReadOnly
If Rst2.EOF Then
MsgBox ("NO")
Exit Sub
End If

② 利用 vba連接access資料庫 完成 這個問題

接和斷開 兩種, 登陸時間的計算方法 是斷開的時間 減去 連接的時間 但是要注意 狀態上有出現裡面有專門的網建優化和seo交流地。每周還有別處沒有的電影和免費資源。網站「 我們愛小眾 」有話大聲說,有愛盡情秀 小眾心靈之地,你的圈子才知你的心

③ 如何用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中用ADO連接遠程的access資料庫

遠程連接access資料庫的幾個方法:
1.建立VPN(Virtual Private Network),然後把伺服器中mdb文件所在的 Folder 共享即可。連接方法如下:
「Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\伺服器名\\文件夾 \\mydata.mdb;Jet
OLEDB:Database Password=datapass;Persist Security Info=False」
2.把資料庫放在Web 伺服器上,使ADO或RDO通過RDS(Remote Data Service) 及IIS來實現:
如果伺服器設置了ODBC DSN的話,連接方法如下:
"Provider=MS Remote;Remote Server=http://伺服器名;Remote Provider=MSDASQL;DSN=AdvWorks;Uid=dataUserName;Pwd=dataPassWord"
如果設置的是OLE DB Provider 的話,連接方法如下:
"Provider=MS Remote;Remote Server=http://伺服器名;Remote
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=資料庫文件路徑,"+ "admin,"+"" (資料庫用戶名為:admin;密碼為空)
3.編寫伺服器程序,通過TCP/IP,傳遞Recordset。
4.使用第三方控制項,如:ADO Anywhere或UDAParts RDB等。
5.使用XMLHTTP

應用舉例
OledbConnection myconn = null;
myconn = new OledbConnection("192.168.1.155", "DSN=mydata;DRIVER={Microsoft Access Driver (*.mdb)};UID=test;PWD=test;"); //其中伺服器IP是 192.168.1.155 ;資料庫名是 mydata ;資料庫用戶名這密碼都是test myconn.Open();

⑤ excel vba ADO 如何遠程連接,比如說連接區域網其它電腦上的access資料庫。請給出代碼

例如;遠程SQLSERVER

連接字元串為:

Provider=SQLOLEDB.1;Password=密碼;Persist Security Info=True;User ID=用戶名;Initial Catalog=資料庫名稱Data Source=遠程主機IP

⑥ 在EXCEL VBA的基礎上,怎樣通過ADO將ACCESS資料庫A中的表a導入到另外一個ACCESSS資料庫B中呢

使用ADO運行Insert 語句,一條條插入到Access或許可行吧。不過貌似將數據從mdbA.tableA讀入處理後生成SheetB,然後再mdbB中讀入SheetB比較省事吧,那要看你的應用是怎樣的了。貌似,Excel增強集工具有個「連結外部數據」的功能,要不樓主找找看吧

⑦ VBA Excel里 用ADO訪問ACCESS資料庫的問題

rst.OpenSql,cn.ConnectionString

我的資料庫語言不是很好,但看了你的代碼,也覺得很亂,你的代碼至少有好幾種方法可以修改,上面是最簡單的一種,實際上你的資料庫在acapp.OpenCurrentDatabase的時候已經打開了,接下來根本就不需要再次使用cn進行連接。

所以第二種改法是:

acApp.OpenCurrentDatabase(dbPath)
'DimcnAsADODB.Connection'不需要再次連接
'Setcn=acApp.CurrentProject.Connection'不需要再次連接
DimrstAsADODB.Recordset
Setrst=NewADODB.Recordset
DimSqlAsString
Sql="Select*From0012X32"
rst.OpenSql,acApp.ADOConnectString'我只需要在這里調用連接的數據就可以了,而這個連接數據存儲在acApp.ADOConnectString裡面。
rst.MoveFirst

下面是RecordSet的OPEN的用法:

Open方法(ADORecordset)
打開游標。
語法
recordset.OpenSource,ActiveConnection,CursorType,LockType,Options
參數
Source可選。Variant,計算有效的Command對象、SQL語句、表名、存儲過程調用、URL或包含持久存儲Recordset的文件名或Stream對象。
ActiveConnection可選。Variant,計算有效的Connection對象變數名,或包含ConnectionString參數的String。
CursorType可選。CursorTypeEnum值,確定在打開Recordset時提供者應使用的游標類型。默認值為adOpenForwardOnly。
LockType可選。LockTypeEnum值,確定在打開Recordset時提供者應使用的鎖定(並發)類型。默認值為adLockReadOnly。
Options可選。Long值,指示提供者計算Source參數的方式(如果該參數表示除Command對象之外的某些內容),或者指示Recordset應該從以前保存過的文件中恢復。可以是一個或多個CommandTypeEnum或ExecuteOptionEnum值,這些值可以用位AND操作符組合。
注意如果從包含持久Recordset的Stream中打開Recordset,那麼使用adAsyncFetchNonBlocking的ExecuteOptionEnum值將不起作用;提取操作將同步進行並發生阻塞。adExecuteNoRecords或adExecuteStream的ExecuteOpenEnum值不應與Open一起使用。

因為ADO語言,直接提供了連接資料庫的方法,所以我們可以直接這樣來連接資料庫:(算作本題的第三種改法吧)

DimcnAsNewADODB.Connection'直接創建對資料庫連接的實例對象cn
cn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&dbPath'連接資料庫
DimrstAsNewADODB.Recordset
DimSqlAsString
Sql="Select*From0012X32"
rst.OpenSql,cn
rst.MoveFirst
rst.Move(1)
MsgBoxrst.Fields(1).Value

⑧ 關於EXCEL VBA 用ADO連接ACCESS資料庫的問題,重謝!

沒加入資料庫的引用,ALT+F11加入你的Microsoft Access 所用的引用就沒問題了

⑨ 如何用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表,而且不是用循環的,不知道是真是假,等待高手的回答。