⑴ 如何用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如何連接網上的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是資料庫用戶密碼
⑶ Excel VBA 連接SQL資料庫後的操作。
呵呵,以前就幫人家解決過這個,請看下面的代碼,有注釋的!
Private Sub CommandButton5_Click()
Dim Conn As New ADODB.Connection '定義ADODB連接對象
Dim ConnStr As String '定義連接字元串
Dim xiao As String
xiao = ComData.Text
'對於SQL 2008,如果以IP方式訪問伺服器,必須要啟動SQL Server Browser服務,如果是Express版本,要以「IP(計算機名)\實例名」方式訪問
ConnStr = txtData.Text
Dim Records As New ADODB.Recordset '定義ADODB對象的記錄集
Dim Sheet As Worksheet '定義工作表
Set Sheet = ThisWorkbook.Worksheets("Sheet2") '給變數Sheet賦值,注意:是工作簿中索引為1的那個表(通常一個新的工作簿Sheet1的索引為1)
'Sheet.Name = "Data" '把Sheet名稱改為Data
Sheet.Cells.Clear '清空表中原有的數據
'連接狀態是打開就不在進行Open操作
Conn.Open ConnStr
Dim SQLStr As String '要執行的SQL語句
SQLStr = "select * from Shift_Code where Club='" + xiao + "'" '可以執行更復雜的SQL語句
Records.Open SQLStr, Conn, adOpenStatic, adLockBatchOptimistic '讀取SQL查詢結果到Records記錄集
'Records.Open
Dim i, j, TotalRows, TotalColumns As Integer
j = 0
TotalRows = Records.RecordCount
TotalColumns = Records.Fields.Count
'下面的循環把表頭(即列名)寫到Excel表的第一行
For i = 0 To TotalColumns - 1
Sheet2.Cells(1, i + 1) = Records.Fields(i).Name
Next
'下面的循環把查詢結果寫到Excel表中
Do While Not Records.EOF
For i = 0 To TotalColumns - 1
Sheet2.Cells(j + 2, i + 1) = Records.Fields(i).Value
Next
Records.MoveNext
j = j + 1
Loop
Records.Close '關閉記錄集
Conn.Close '關閉連接
Set Records = Nothing '清空對象
Set Conn = Nothing '清空對象
End Sub
有什麼不懂的話Hi我!
⑷ 如何用vba連接資料庫
Public Sub SynTableConfig()
Dim cnn As New ADODB.Connection, sh As Worksheet
Dim rs As New ADODB.Recordset
Dim cnnStr As String, SQL As String
'建立與SQL Server資料庫伺服器的連接
cnnStr = "Provider=SQLOLEDB;Initial Catalog=" & myDataBase & ";User ID=" & myname & ";Password=" & mypassword & ";Data Source=" & serverip
cnn.ConnectionString = cnnStr
cnn.Open
SQL = "select * from sys_table where id='123' order by 表名稱"
Set rs = cnn.Execute(SQL)
While Not rs.EOF
.............
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
⑸ VBA鏈接資料庫
VBA連接 ORACLE 需要安裝 OO4O (Oracle Objects for OLE)組件。
可以到 ORACLE 公司下載:
http://www.oracle.com/technology/global/cn/software/tech/windows/ole/index.html
下載以後安裝就行了,請注意,安裝到你要運行VBA的計算機上。
⑹ vba連接mysql資料庫。
這個需要用odbc連接
⑺ 如何用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連接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
⑽ VBA後期綁定字典如何設為公共變數
操作步驟如下:
第一步、兩文件在同一目錄下,文件名稱為1和2。
第二步、打開文件2,此時將文件1也打開。
第三步、在以下操作完成後關閉文件1:將1中的數據變為字典,此字典能被文件2中的所有工作表調用。
第四步、在某一工作表寫1個調用的例子,比如項目選擇a,則顯示a1 b1 1.
在_文件2 中插入模塊在該模塊的起始部分,設置公共變數用一過程給公共變數賦值
首先新建模塊,在模塊中定義該變數:public dic as object
其次在過程中為該變數賦值:比如在thisworkbook工作表下,選擇workbook_open事件:Private Sub Workbook_Open()
Dim a, ar
Set dic = CreateObject("scripting.dictionary")
ar = Sheet1.Range("A2:B18")
For i = 1 To UBound(ar)
dic(ar(i, 1)) = ar(i, 2)
Next
End Sub
此時重新打開工作簿時,dic已經被賦值,便可以在其他表格中直接引用了。