⑴ 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資料庫連接求代碼
下面這段程序是連接資料庫,並將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
⑶ 如何用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表,而且不是用循環的,不知道是真是假,等待高手的回答。
⑷ 如何在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();
⑸ 用vba如何連接網上的sql資料庫
代碼如下:有問題,發網路消息給我。
在Microsoft visual basic中,工具-引用 Microsoft ActiveX Data Objects 2...選一個高版本的
Dim conn As New ADODB.Connection
connStr = "Driver={SQL Server};DataBase=test;Server=(local);UID=sa;PWD=123"
conn.Open connStr '連接資料庫
Dim rs As New Recordset
sql = "select * from a" '查看錶a
rs.Open sql, conn, 3, 3
Do While Not rs.EOF '循環表a的內容
MsgBox (rs("field1")) '顯示表中field1欄位內容
rs.MoveNext
Loop
'connStr = "Driver={SQL Server};DataBase=test;Server=(local);UID=sa;PWD=123"
'test是資料庫名
'(local)是伺服器名或IP地址,可以:192.168.1.1,可以是:www.sina.com.cn
'sa是資料庫用戶
'123是資料庫用戶密碼
⑹ VBA 如何通過ADO連接Oracle資料庫拜託各位大神
1、把開excel,點擊工具-->宏-->錄制新宏 2、點擊 數據-->導入外部數據-->新建資料庫查詢,然後根據向導選擇oracle驅動,最後完成向導 3、點停止宏,再點 工具-->宏-->宏... 在對話框里選擇剛才錄制的宏,點編輯, 這樣就可以看到連接字元串了。
⑺ vba連接SQL資料庫方法
如下:自己改一下:
Subaa()
DimcnAsNewADODB.Connection
DimrsAsNewRecordset
Str1="select區域,內=SUM(casewhen新替換區內外='替換區內'then1else0end),外=SUM(casewhen新替換區內外='替換區外'then1else0end)from宏站groupby區域"
strcn="Provider=sqloledb;Database=test;Uid=sa;Pwd=30687724;datasource=127.0.0.1,1433;"
cn.Openstrcn
rs.OpenStr1,cn
Dimi
Fori=1Tors.Fields.Count
Cells(1,i)=rs.Fields(i-1).Name』FIELDS是從0開始的,所以這里要-1
Range("a2").CopyFromRecordsetrs
Nexti
⑻ 求教VBA連接SQL資料庫的詳細方法及解釋。
1、基本上所有的資料庫都有對應的寫法(有些資料庫是要裝連接驅動才能連),比如"Provider=Microsoft.Jet.OLEDB.4.0(用來連接access)或者provider =MSDASQL,而且每種資料庫也可能會有多種連接方法(Provider意即資料庫引擎),常見的有下面這些
Provider 代碼 Provider
ADSDSOObject Active Directory Services
Microsoft.Jet.OLEDB.4.0 Microsoft Jet databases
MSDAIPP.DSO.1 Microsoft Internet Publishing
MSDAORA Oracle databases
MSDAOSP Simple text files
MSDASQL Microsoft OLE DB provider for ODBC
MSDataShape Microsoft Data Shape
MSPersist Locally saved files
SQLOLEDB Microsoft SQL Server
2、參見http://www.w3school.com.cn/ado/met_conn_open.asp#connectoptionenum
3、這樣就可以對book1.xlsx中的數據使用sql語法進行操作
4、當你需要返回結果的,比如說你要查詢資料庫符合某個條件的有幾條記錄,或者說取出資料庫中符合條件的一批記錄的時候就要用數據集,單一的conn.execute只能執行操作,不能返回數據,必須配合結果集使用才可取回數據。
⑼ vbaExcel連接資料庫的好處
EXCEL vba 資料庫連接
聽語音
原創
|
瀏覽:7393
|
更新:2016-06-23 16:12
|
標簽:EXCELVBA