自動取資料庫
㈠ 如何用access自動獲取excel裡面的數據
通過代碼的方式導入Excel數據到Access資料庫,是一個高效且實用的技巧。首先,你需要在Access中創建一個新的工程,並在其中引用ADO對象,用於連接Access資料庫。接著,添加一個窗體,命名為from1,並在窗體上添加以下控制項:兩個文本框,分別用來顯示Excel文件路徑和Access路徑;四個按鈕,兩個用於瀏覽文件,另兩個是導入和退出;兩個通用對話框控制項,用於打開Access和Excel文件;一個進度條控制項,顯示導入進程。為了保證導入過程的准確性,實例中將Access資料庫中的表的欄位名單獨存放在另一個表中,導入時按欄位名順序進行,而非按Excel表的順序。這樣可以避免欄位順序不一致帶來的問題。
接下來,我們需要編寫代碼。示例代碼首先檢查是否選擇了Excel文件路徑,如果沒有選擇,則彈出提示框要求選擇。然後,通過Excel.Application對象打開選定的Excel文件,讀取記錄數,並根據記錄數設置進度條的最大值。接下來,打開兩個記錄集,一個用於表欄位名的查詢,另一個用於數據的查詢。通過兩層循環,逐行讀取Excel中的數據,並根據欄位名順序插入到Access表中。
此外,代碼中還包括了關閉Excel工作簿和退出Access的部分,確保操作完成後不會影響Excel的運行狀態。最後,顯示成功導入的記錄數,並將滑鼠指針恢復為默認狀態。
窗體上的其他按鈕分別用於打開Access和Excel文件、退出程序。這些按鈕的點擊事件分別調用CommonDialog控制項的ShowOpen方法,並將文件路徑顯示在相應的文本框中。
在模塊(mole1)中,定義了連接字元串、記錄集等變數,並提供了連接資料庫的lianjie子程序。這個子程序首先關閉當前打開的連接,然後使用指定的連接字元串打開Access資料庫,並設置記錄集的連接對象。
通過以上步驟,可以實現從Excel自動導入數據到Access資料庫的功能。這種自動化處理方式不僅節省了手動輸入的時間,還提高了數據處理的准確性。
㈡ 關於提取某一個網站的資料庫
資料庫的提取方式有多種,其中兩種主要方法是直接伺服器提權和使用特定工具進行操作。伺服器提權涉及直接獲取伺服器上的資料庫訪問許可權,這種方式較為直接,但操作較為復雜,需要一定的技術水平。
另一種方法是利用諸如「帝國備份王」之類的備份工具,或者直接運行特定程序來實現資料庫的提取。這種方法更為簡便,特別是對於Access資料庫而言,可以直接下載 mdb 文件,無需復雜的操作步驟。而對於 Mysql 資料庫,則需要在伺服器上進行操作。
帝國備份王可以用來提取 Access 資料庫,用戶只需簡單幾步即可完成提取過程,非常適合不具備高級技術知識的用戶使用。相比之下,MySQL 資料庫的提取則需要在伺服器端進行,過程相對復雜。
除了使用工具外,還有一些圖文說明可以幫助用戶更好地理解整個操作流程。這些說明通常包括詳細的步驟指導,以及可能遇到的問題和解決方案,從而幫助用戶順利完成資料庫的提取。
需要注意的是,無論是哪種方法,操作過程中都應當遵守相關法律法規,確保數據安全和合法使用。不當的操作可能會導致數據泄露或伺服器受損,因此在進行資料庫提取時務必謹慎行事。
對於不具備技術背景的用戶,建議尋找專業的技術支持或使用易於操作的工具來提取資料庫,以避免操作失誤帶來的風險。
㈢ 如何在EXCEL中自動讀取ACCESS資料庫中的信息
用access自動獲取excel里的數據的方法就是通過代碼的方式導入。
如果是手動導入比較清楚的話,這個實現起來不難,請參考下面的介紹來實現:
首先,新建一個工程,在工程中引用如下對象ADO對象(用於連接ACCESS資料庫,可用其它方式),添加一個窗體(from1),在窗體上添加如下控制項:
兩個文本框,用來顯示EXCEL文件路徑和ACCESS路徑;
四個扭鈕,兩個用來游覽,另兩個是導入和退出;
兩個通用對話框控制項,用來打開ACCESS和EXCEL文件,一個進度條控制項,用來顯示導入進程。
該實例的導入是將ACCESS資料庫中表的欄位名單獨存放在另外一個表中,導入時按表中所存欄位名的順序進行導入,不是按EXCEL表的順序導入,這樣在實際中是很實用的.
因為好多時候EXCEL表中欄位順序和ACCESS中欄位順序有可能不是一致的.
代碼如下:
Dim v
Option Explicit
Private Sub cmdLoad_Click()
Dim excel_app As Object
Dim excel_sheet As Object
If txtExcelFile.Text = "" Then
MsgBox "請選擇EXCEL表"
Else
Dim new_value As String
Label2.Caption = "正在導入,請稍候..."
Screen.MousePointer = vbHourglass
DoEvents
'' Create the Excel application.
Set excel_app = CreateObject("Excel.Application")
'' Uncomment this line to make Excel visible.
excel_app.Visible = True
'' Open the Excel spreadsheet.
excel_app.Workbooks.open FileName:=txtExcelFile.Text
'' Check for later versions.
If Val(excel_app.Application.Version) >= 8 Then
Set excel_sheet = excel_app.ActiveSheet
Else
Set excel_sheet = excel_app
End If
Dim u ''求EXCEL表中記錄的條數,以便控制進度條
u = 1
Do
If Trim$(excel_sheet.Cells(u, 1)) = "" Then Exit Do
u = u + 1
Loop
bar.Max = u - 1
strSQL = "select * from TestValues"
yourRecord.open strSQL, myConn, adOpenDynamic, adLockOptimistic ''打開記錄集
Dim sql As String
sql = "select * from fields order by xue"
myRecord.open sql, myConn, adOpenDynamic, adLockBatchOptimistic ''打開欄位記錄集
myRecord.MoveFirst
'' Get data from the Excel spreadsheet and insert
'' it into the TestValues table.
Dim v ''導入記錄,用了兩層循環
v = 1
Do
If Trim$(excel_sheet.Cells(v, 1)) = "" Then Exit Do ''外層,
yourRecord.AddNew
Dim i
For i = 1 To myRecord.RecordCount
'' Get the next value.
new_value = Trim$(excel_sheet.Cells(v, i))
'' See if it''s blank.
''If Len(new_value) = 0 Then Exit Do
'' Insert the value into the database.
Dim bb As String
bb = myRecord("name")
yourRecord(bb) = new_value
myRecord.MoveNext
Next i
bar.Value = v
v = v + 1
myRecord.MoveFirst
Loop
yourRecord.Update
'' Comment the rest of the lines to keep
'' Excel running so you can see it.
'' Close the workbook without saving.
excel_app.ActiveWorkbook.Close False
'' Close Excel.
excel_app.Quit
Set excel_sheet = Nothing
Set excel_app = Nothing
myRecord.Close
yourRecord.Close
Set myRecord = Nothing
Set yourRecord = Nothing
Label2.Caption = "導入完畢"
Screen.MousePointer = vbDefault
MsgBox "共導入" & Format$(v - 1) & "條記錄"
End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Command2_Click(Index As Integer)
''尋找ACCESS資料庫
CommonDialog1.Filter = "ACCESS 文件(*.mdb)|*.mdb"
CommonDialog1.CancelError = True
CommonDialog1.ShowOpen
txtAccessFile.Text = CommonDialog1.FileName
End Sub
Private Sub Command3_Click()
''尋找excel資料庫
CommonDialog2.Filter = "excel 文件(*.xls)|*.xls"
CommonDialog2.CancelError = True
CommonDialog2.ShowOpen
txtExcelFile.Text = CommonDialog2.FileName
End Sub
Private Sub Form_Load()
Call Mole1.lianjie
txtAccessFile.Text = datapath
End Sub
模塊(mole1)中的代碼如下:
Public myConn As New ADODB.Connection ''定義連接字元串
Public myRecord As New ADODB.Recordset ''定義記錄集(欄位)
Public yourRecord As New ADODB.Recordset ''定義記錄集(數據)
Public cntoad As Boolean ''是否正常連接
Public ml ''姓名欄位所在列
Public strSQL ''查詢字元串
Public MyDatabase As Database ''定義資料庫名
Public MyTable As TableDef, MyField As Field ''定義表名和欄位名
Public xuehao ''讀取欄位序號
Public goshiRecord As New ADODB.Recordset ''定義記錄集(公式)
Public hxfyn As Boolean
Public hxfbds '' 公式或條件
Public an ''要統計的欄位
Public islinshi As Boolean ''是否為臨時公式
Public leiRecord As New ADODB.Recordset ''定義記錄集(工資類別)
Public datapath As String ''資料庫路徑及名
Public table As String ''工資表名
Public lei As String '' 工資類別
Public Sub lianjie() ''打開資料庫
On Error Resume Next
myConn.Close
Dim mySQL As String
''設定連接字元串
mySQL = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;"
mySQL = mySQL + "Data Source=" & datapath
myConn.ConnectionString = mySQL ''設定連接
myConn.open ''打開連接
myRecord.ActiveConnection = myConn ''設定RecordSeet的連接對象為Connection
myRecord.CursorLocation = adUseClient
goshiRecord.ActiveConnection = myConn ''設定RecordSeet的連接對象為Connection
goshiRecord.CursorLocation = adUseClient
yourRecord.ActiveConnection = myConn ''設定RecordSeet的連接對象為Connection
yourRecord.CursorLocation = adUseClient
End Sub