當前位置:首頁 » 編程語言 » vb中xls批量導入到sql中
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

vb中xls批量導入到sql中

發布時間: 2023-01-21 08:04:22

1. vb excel導入sql

直接into到sql

2. 使用VB將excel導入sql

EXCEL文件要設置固定格式,還要設置命名范圍,然後才可以導入
大致思路如下:
'// 設置打開 EXCEL 文件的連接字元串
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=excel文件名;Extended Properties=Excel 8.0"

'// 以記錄集的形式打開 Excel 文件,adoConn 為 ADODB.Connection 對象
adoConn.Open strConn
'// 將數據插入到指定的表中(以ODBC的方式打開SQL資料庫
strSQL = "INSERT INTO [odbc;Driver={SQL Server};Server=伺服器IP;Database=資料庫;UID=用戶名;PWD=密碼].SQL中的表名 SELECT EXCEL中的欄位 FROM EXCEL工作表名"
'// 執行導入語句
adoConn.Execute strSQL, , adExecuteNoRecords

3. vb如何導入excel到SQL伺服器

打開SQL Server的企業管理器,右擊你現在使用中的SQL 資料庫,所有數據--》導入數據--》選擇數據源為:Microsoft Excel 97-2000--》選擇要導入的Excel文件--》下一步--》填寫目標資料庫SQL 的驗證密碼--》如果要將Excel導入資料庫中一個表中,就請按照提示選擇表吧--》直接下一步--》直到出現成功提示!

4. 用VB編寫一個導入EXCEL文件數據到SQL2000資料庫中的程序,怎麼編寫的

操作方法如下:
1、導入Excel數據,同時創建表:
select * into 表名 FROMopenrowset( 'Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=1;DATABASE=文件路徑','select* from [Excel表名(默認為Sheet1)$]')。
2、在表中插入Excel數據:
insert into 表名 select * fromopenrowset( 'Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=1; DATABASE=文件路徑','select * from [Excel表名(默認為Sheet1)$]')。
3、導出數據到Excel中:
insert into openrowset('Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=0; DATABASE=文件路徑','select* from [Excel表名(默認為Sheet1)$]') select * from 表名;需要創建Excel文件並指定列名後才可以導出。

5. VB 把Excel中的內容批量導入SQL資料庫

Students表中有一個欄位的數據類型是image!!!為什麼要是image類型 你插入的數據 照片的那個欄位 是varchar類型 當然會沖突 一般照片存放 都不會用image類型 一般是用varchar來存放 照片的路徑!!!

6. 怎樣用vb打開excel表,並將excel中的項插入到sql的對應表中

用EXCEL對象讀取EXCEL文件中數據.然後通過ADODB連接SQL進和導入
下面是EXCEL對象的詳解

1 前言

做為一種簡捷、系統的 Windows應用程序開發工具,VB具有強大的數據處理功能,提供了多種數據訪問方法,可以方便地存取Microsoft SQL Server、Oracle、XBase等多種資料庫,被廣泛應用於建立各種信息管理系統。但是,VB缺乏足夠的、符合中文習慣的數據表格輸出功能,雖然使用Crystal Report控制項及 Crystal Reports程序可以輸出報表,但操作起來比較麻煩,中文處理能力也不理想。Excel在表格方面有著強大的功能,我們可以用VB編寫直接控制Excel操作的程序,方法是用VB的OLE自動化技術獲取Excel的控制句柄,從而直接控制Excel的一系列操作。本文結合自己的實踐和體會,談談如何在VB6.0應用程序中調用Exce12000,供大家參考。

2 Excel對象模型

為了在VB應用程序中調用Excel,必須要了解Excel對象模型。Excel對象模型描述了Excel的理論結構,所提供的對象很多,涉及VB調用Excel時最可能用到的對象有:
http://www.deepcast.net/wiki/ow.asp?p=Excel%B6%D4%CF%F3%C4%A3%D0%CD&a=print

3 調用Excel

在VB應用程序中調用Excel,實質是將Excel作為一個外部對象來引用,由Excel對象模型提供能從VB應用程序內部來程序化操縱的對象以及相關的屬性、方法和事件。

3.1 在VB工程中添加對Excel類型庫的引用

為了能從VB應用程序中訪問Excel豐富的內部資源,使Excel應用程序運行得更快,需要在VB工程中添加對Excel類型庫的引用。具體步驟如下:

1) 在VB應用程序中調用Excel,你的計算機系統中必須安裝Excel。從VB5「工程」菜單中選擇「引用」;

2) 在「引用」對話框中選擇Excel類型庫:"Microsoft Excel9.0 Object Library";

3) 單擊左邊小方框,使之出現「√」符號;

4) 按「確定」退出。

3.2 引用Application對象

Application對象是Excel對象模型的頂層,表示整個Excel應用程序。在VB應用程序中調用Excel,就是使用Application對象的屬性、方法和事件。為此,首先要聲明對象變數:

Dim VBExcel As Object

或直接聲明為Excel對象:

Dim VBExcel As Excel.Application

在聲明對象變數之後,可用CreateObject函數或GetObject函數給變數賦值新的或已存在的Application對象引用。

1)用CreateObject函數生成新的對象引用:

Set VBExcel=CreateObject ("Excel.Application")

字元串「Excel.Application」是提供Excel應用程序的編程ID,這個變數引用Excel應用程序本身。

2)用GetO場ect函數打開已存在的對象引用:

Set AppExcel=GetObject("Temp.XLS")

上面語句打開文件Temp.XLS。

3)Application對象常用的屬性、方法

Visible屬性取True或False,表明Excel應用程序是否可見。

Left,Top屬性Excel窗口的位置;

Height, Width屬性Excel窗口的大小;

WindowState屬性指定窗口的狀態;

Quit方法,退出Microsoft Excel;

Calculate方法,重新計算所有打開的工作簿、工作表或單元格。

Evaluate方法,求值數學表達式並返回結果。

3.3 使用Excel應用程序

下面分類給出其中常用的屬性和方法。

1)使用工作薄

Workbook對象代表Excel應用程序中當前打開的一個工作簿,包含在Workbooks集合中。可以通過Workbooks集合或表示當前活動工作簿的Active Workbook對象訪問Workbook對象。

常用的方法有:

Add方法:創建新的空白工作簿,並將其添加到集合中。

Open方法:打開工作簿。

Activate方法:激活工作簿,使指定工作簿變為活動工作簿,以便作為Active Workbook對象使用。

Save方法:按當前路徑和名稱保存現有工作簿(如是首次保存,則將其保存到預設名稱中,如BOOK1.XLS)。

SaveAs方法:首次保存工作簿或用另一名稱保存工作簿。

Close方法:關閉工作簿。

PrintOut方法:列印工作簿,語法為:

PrintOut (from, To, Copies, Preview, Printer, ToFile, Collate)

可選參數:

From:列印的起始頁號,如省略將從起始位置開始列印。

To:列印的終止頁號,如省略將列印至最後一頁。

Copies:要列印的份數,如省略將只列印一份。

Preview:如果為True則Excel列印指定對象之前進行列印預覽。如果為False或省略則立即列印該對象。

Printer:設置活動列印機的名稱。

ToFile:如果為True則列印輸出到文件。

Collate:如果為True則逐份列印每份副本。

下面語句將活動工作簿的2到5頁列印3份:

ActiveWorkbook.PrintOut From:=2 To 5 Copies:=3

2)使用工作表

Sheets集合表示工作簿中所有的工作表。可以通過Sheets集合來訪問、激活、增加、更名和刪除工作表。一個Worksheet對象代表一個工作表。

常用的屬性、方法有:

Worksheets屬性:返回Sheets集合。

Name屬性:工作表更名。

Add方法:創建新工作表並將其添加到工作簿中。

Select方法:選擇工作表。

Copy方法:復制工作表。

Move方法:將指定工作表移到工作簿的另一位置。

Delete方法:刪除指定工作表。

PrintOut方法:列印工作表。

示例:將C盤工作簿中的工作表復制到A盤工作簿中:

Dim VBExcel As Excel.Application

Set VBExcel=CreateObject("Excel.Application")

With VBExcel

Workbooks.Open "C:\Temp\Ex1.XLS"

Workbooks.Open"A:\Ex2.XLS"

Workbooks("Ex1.XLS").Sheets ("Sales").Copy

Workbooks("Ex2.XLS")

Workbooks("Ex2.XLS").Save

Workbooks("Ex1.XLS").Close

Workbooks("Ex2.XLS").Close

Quit

End With

3)使用單元范圍

Range對象代表工作表的某一單元格、某一行、某一列、某一選定區域或者某一三維區域。

常用的屬性、方法有:

Range屬性:Range (arg)其中arg為A1樣式符號,表示單個單元格或單元格區域。

Cells屬性:Cells (row, col )(其中row為行號,col為列號)表示單個單元格。

ColumnWidth屬性:指定區域中所有列的列寬。

Rowl3eight屬性:指定區域中所有行的行寬。

Value屬性:指定區域中所有單元格的值(預設屬性)。

Formula屬性:指定單元格的公式,由A1--樣式引用。

Select方法:選擇范圍。

Copy方法:將范圍的內容復制到剪貼板。

C1earContents方法:清除范圍的內容。

Delete方法:刪除指定單元范圍。

4)使用圖表

Chart對象代表工作簿中的圖表。該圖表既可為嵌人式圖表(包含於ChartObject對象中)也可為分立的圖表工作表。

常用方法有:

Add方法:新建圖表工作表,返回Chart對象。

PrineOut方法:列印圖表。

ChartWizard方法:修改給定圖表的屬性,其語法為:

ChartWizard(Source, Gallery, Format, P1otBy, CategoryLabels, SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle)

其中:

Source:包含新圖表的源數據的區域。如省略,將修改活動圖表工作表或活動工作表中處於選定狀態的嵌人式圖表。

Gallery:圖表類型,其值可為下列常量之一:xlArea, x1Bar, xlColumn, xlLine, x1Pie, xlRadar,x1XYScatter, xlCombination, x13DArea, x13Dbar,x13DColumn, x13DLine, x13Dpie,x13 Dsurface,xlDoughnut或xlDefaultAutoFormat。

Format:內置自動套用格式的編號。如省略,將選擇默認值。

P1otBy:指定系列中的數據是來自行(xlRows)還是列(xlColumns)。

CategoryLabels:表示包含分類標志的源區域內行數或列數的整數。

SeriesLabels:表示包含系列標志的源區域內行數或列數的整數。

HasLegend:若指定True,則圖表將具有圖例。

Title:圖表標題文字。

CategoryTitle:分類軸標題文字。

ValueTitle:數值軸標題文字。

ExtraTitle:三維圖表的系列軸標題,或二維圖表的第二數值軸標題。

可組合使用Add方法和ChartWizard方法,以創建包含工作表中數據的圖表工作表。下例基於工作表「Sheetl」中單元格區域「A1:A20」中的數據生成新的折線圖並列印。

With Charts.Add

ChartWizard source:=Worksheets ("sheet1").Range_

("a1:a20"),gallery:=xlLine, title:=「折線圖表」

Printout

End With

5)使用Excel工作表函數

在VB語句中可使用大部分的Excel工作表函數,可通過WorksheetFunction對象調用Excel工作表函數。下面的Sub過程用Min工作表函數求出指定區域中單元格的最小值,並通過消息框顯示結果值。

Sub UserFunction()

Dim myRange As Range

Set myRange=Worksheets ("Sheet1").Range("B2:F10")

answer=Application.WorksheetFunction.Min(myRange)

MsgBox answer

End Sub

如果使用以區域引用為參數的工作表函數,必須指定一個Range對象。如可用Match工作表函數對A1:A10區域的所有單元格進行搜索。

Sub FindFirst()

myVar=Application.WorksheetFunction.Match_

(9,orksheets( 1).Range("A1:A10"),0)

MsgBox myVar

End Sub

要在單元格中插人工作表函數,可將該函數指定為對應於Range對象的Formula屬性值。在以下示例中,將當前工作簿Sheetl內A1:B3區域的Formula屬性指定為RAND工作表函數(此函數產生二個隨機數)。

Sub InsertFormula()

Worksheets ("Sheet1" ).Range("A1:B3").Formula="RAND()"

End Sub

以上簡要介紹了Excel對象模型中部分對象及其屬性和方法,更詳細的信息可參閱Excel 2000幫助中的「Microsoft Excel Visual Basic參考」一節的內容。實際上,Microsoft Office家族的Word,PowerPoint, Access和Project等應用程序都可以在VB應用程序中調用,其原理和步驟完全相同,只是其對象模型有所不同而已。

4、示例:

首先建立一個窗體(FORM1),在窗體中加入一個DATA控制項和一按鈕,引用Microsoft office/9.shtml' target='_blank' class='article'>Excel類型庫:從"工程"菜單中選擇"引用"欄;選擇Microsoft Excel 9.0 Object Library;選擇"確定"。

在FORM的LOAD事件中加入:

Data1.DatabaseName = 資料庫名稱

Data1.RecordSource = 表名

Data1.Refresh

在按鈕的CLICK事件中加入

Dim Irow, Icol As Integer

Dim Irowcount, Icolcount As Integer

Dim Fieldlen() "存欄位長度值

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlSheet As Excel.Worksheet

Set xlApp = CreateObject("Excel.Application")

Set xlBook = xlApp.Workbooks.Add

Set xlSheet = xlBook.Worksheets(1)

With Data1.Recordset.MoveLast

If .RecordCount < 1 Then

MsgBox ("Error 沒有記錄!")

Exit Sub

End If

Irowcount = .RecordCount "記錄總數

Icolcount = .Fields.Count "欄位總數

ReDim Fieldlen(Icolcount).MoveFirst

For Irow = 1 To Irowcount + 1

For Icol = 1 To Icolcount

Select Case Irow

Case 1 "在Excel中的第一行加標題

xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1).Name

Case 2 "將數組FIELDLEN()存為第一條記錄的欄位長

If IsNull(.Fields(Icol - 1)) = True Then

Fieldlen(Icol) = LenB(.Fields(Icol - 1).Name)

Else

Fieldlen(Icol) = LenB(.Fields(Icol - 1))

End If

xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)

xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1)

Case Else

Fieldlen1 = LenB(.Fields(Icol - 1))

If Fieldlen(Icol) < Fieldlen1 Then

xlSheet.Columns(Icol).ColumnWidth = Fieldlen1

Fieldlen(Icol) = Fieldlen1

Else

xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)

End If

xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1)

End Select

Next

If Irow <> 1 Then

If Not .EOF Then .MoveNext

End If

Next

With xlSheet

.Range(.Cells(1, 1), .Cells(1, Icol - 1)).Font.Name = "黑體"

.Range(.Cells(1, 1), .Cells(1, Icol - 1)).Font.Bold = True

.Range(.Cells(1, 1), .Cells(Irow, Icol - 1)).Borders.LineStyle = xlContinuous

End With
xlApp.Visible = True

xlBook.Save

Set xlApp = Nothing

End With

7. vb中將excel表導入到sql中相同結構的數據表中

下面是導入按鈕COMMAND1_CLICK裡面的代碼
text4為顯示讀取文件路徑的。
IfTrim(Text4.Text)=""Then
MsgBox"請選擇導入的路徑!",vbInformation,Me.Caption
Text4.SetFocus
ExitSub
EndIf
IfMsgBox("確實要導入信息嗎?",vbQuestion+vbYesNo,Me.Caption)=vbNoThen
ExitSub
EndIf
MousePointer=11
'EXCEL導入
CallImportZJZHXX(Trim(Text4.Text&"文件名.xls"))

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

以下是導入的方法

'通過Excel導入資料庫中
Private Function ImportZJZHXX(ByVal strExcelFile As String) As Boolean
Dim ExcelApp As Excel.Application
Dim ExcelSheet As Excel.Worksheet
Dim sql As String
Dim Hzrs As New ADODB.Recordset

Dim gcnData As ADODB.Connection

Dim icount1 As Integer
Dim i As Integer

gcnData.Open "Provider=MSDAORA.1;Password=dzcs;User ID=dzcs;Data Source=ORCL_72.11"

On Error GoTo ErrHandler

If strExcelFile = vbNullString Then
MsgBox "沒有Excel文件!", vbInformation, Me.Caption
Exit Function
End If

Me.MousePointer = vbHourglass
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Workbooks.Open FileName:=strExcelFile
Set ExcelSheet = ExcelApp.ActiveSheet

If ExcelSheet.UsedRange.Rows.Count > 1 Then
Hzrs.Open "select * from JjHkXx where 1=2", gcnData, adOpenKeyset, adLockOptimistic
For i = 2 To ExcelSheet.UsedRange.Rows.Count
Hzrs.AddNew
Hzrs!fsetcode = Trim(ExcelSheet.Cells(i, 1))

Hzrs!FskDw = Trim(ExcelSheet.Cells(i, 2))
Hzrs!FSkRen = Trim(ExcelSheet.Cells(i, 4))
Hzrs!fskbank = Trim(ExcelSheet.Cells(i, 5))

Hzrs.Update
icount1 = icount1 + 1
Next

Hzrs.Close
Else
Me.MousePointer = vbDefault
MsgBox "Excel文件中沒有數據,請檢查!", vbOKOnly + vbInformation, Me.Caption
Exit Function
End If

ExcelApp.ActiveWorkbook.Close False
ExcelApp.Quit
Set ExcelSheet = Nothing
Set ExcelApp = Nothing

MsgBox "導入信息成功,總行數 :" & icount1, vbOKOnly + vbInformation, Me.Caption

Me.MousePointer = vbDefault
ImportZJZHXX = True

Exit Function

ErrHandler:
If err.Number <> 0 Then
MsgBox "導入信息失敗,原因可能是:" & err.Description, vbOKOnly + vbInformation, Me.Caption
Me.MousePointer = vbDefault
ImportZJZHXX = False
End If
End Function