一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Excel使用VBA宏生成SQL語(yǔ)句

 昵稱2588280 2010-08-10
有時(shí)候需要將Excel文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中,常用的做法是使用程序讀取Excel,然后存入數(shù)據(jù)庫(kù);這里換一個(gè)方法,用Excel生成SQL語(yǔ)句,然后用這些SQL語(yǔ)句來(lái)更新數(shù)據(jù)庫(kù)。
   本文主要說(shuō)明Excel如何使用VB宏構(gòu)造需要的SQL語(yǔ)句,并生成文件。
2、如何添加按鈕:
依次打開:視圖–工具欄–控件工具箱,選擇“命令按鈕”,自己畫一個(gè)就行了;
依次打開:右鍵–屬性,可以修改名稱、樣式等。
具體操作可以上網(wǎng)找找。
3、如何使用VB宏:
依次打開:工具–宏–安全性,看看你的Excel是否允許使用“宏”。
然后打開:工具–宏–Visual Basic 編輯器,雙擊左側(cè)的“Sheet1”,然后在右側(cè)的代碼區(qū)域粘貼如下代碼:
'最大行數(shù)
Const MAX_NUM_ROW = 5000
'導(dǎo)出文件路徑所在單元格
Const PATH_OUTPUT_ROW = 3
Const PATH_OUTPUT_COL = 3
'定義列常量
Const NAME_COL = 1
Const GENDER_COL = 2
Const PHONE_COL = 3
Const EMAIL_COL = 4
'讀取數(shù)據(jù)開始行數(shù)
Const START_ROW = 5
'定義數(shù)據(jù)實(shí)體類
Private Type Tmplt
NAME As String
GENDER As String
PHONE As String
EMAIL As String
End Type
'行數(shù)變量
Dim noOfTmplts As Integer
'數(shù)據(jù)實(shí)體類數(shù)組
Dim TmpltArray(MAX_NUM_ROW) As Tmplt
'點(diǎn)擊按鈕觸發(fā)事件
Private Sub CommandButton1_Click()
generateSQL
End Sub
'生成SQL
Private Sub generateSQL()
makedir
initData
writeToFile
End Sub
'構(gòu)建文件輸出路徑
Private Sub makedir()
On Error Resume Next
MkDir Sheet1.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL)
End Sub
'讀取Excel數(shù)據(jù),填充實(shí)體類數(shù)組
Private Sub initData()
Erase TmpltArray
noOfTmplts = 0
Dim j As Integer
'循環(huán)讀取Excel數(shù)據(jù)行
For j = START_ROW To MAX_NUM_ROW
TmpltArray(noOfTmplts).NAME = Sheet1.Cells(j, NAME_COL)
TmpltArray(noOfTmplts).GENDER = Sheet1.Cells(j, GENDER_COL)
TmpltArray(noOfTmplts).PHONE = Sheet1.Cells(j, PHONE_COL)
TmpltArray(noOfTmplts).EMAIL = Sheet1.Cells(j, EMAIL_COL)
noOfTmplts = noOfTmplts + 1
Next
End Sub
'讀取實(shí)體類數(shù)組,生成SQL并寫入文件
Private Sub writeToFile()
Dim lvOutputPath As String
'輸出文件路徑
lvOutputPath = Sheet1.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL)
If lvOutputPath = "" Then
MsgBox "沒(méi)有找到輸出文件路徑!"
Exit Sub
End If
fileNum = FreeFile
'打開輸出文件
Open lvOutputPath For Output As fileNum

Dim lvUserSql As String
Dim nameStr As String
Dim genderStr As String
Dim phoneStr As String
Dim emailStr As String
'循環(huán)生成SQL
For j = 0 To noOfTmplts - 1
nameStr = TmpltArray(j).NAME
genderStr = TmpltArray(j).GENDER
phoneStr = TmpltArray(j).PHONE
emailStr = TmpltArray(j).EMAIL
If nameStr <> "" Then
lvUserSql = "Insert into Students(name,gender,phone,email) values('" & nameStr & "','" & genderStr & "','" & phoneStr & "','" & emailStr & "');"
Print #fileNum, lvUserSql
End If
Next
Close fileNum
MsgBox "文件生成完成!"
Exit Sub
Err_Open_File:
Close lvFileNum
If Err.Number = 76 Then
'路徑未找到
MsgBox Err.Description
Exit Sub
Else
MsgBox Err.Description
Exit Sub
End If
End Sub
OK,這樣就可以了!點(diǎn)擊你的按鈕,看看生成文件了嗎?
如果按鈕還是編輯狀態(tài),關(guān)了再打開就行了。

本篇文章來(lái)源于:開發(fā)學(xué)院 http://edu.   原文鏈接:http://edu./2009/0616/6383.php

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    色婷婷中文字幕在线视频| 久久精品亚洲精品一区| 日本中文在线不卡视频| 免费特黄一级一区二区三区| 在线免费不卡亚洲国产| 男人和女人草逼免费视频| 国产又粗又猛又爽又黄的文字| 国产一区二区精品高清免费| 国产一级特黄在线观看| 久久精品国产亚洲av麻豆| 欧美一区二区三区播放| 日本 一区二区 在线| 日韩一区二区三区嘿嘿| 国产传媒欧美日韩成人精品| 男人操女人下面国产剧情| 人妻人妻人人妻人人澡| 午夜午夜精品一区二区| 91天堂素人精品系列全集| 欧美日韩欧美国产另类| 亚洲国产精品久久琪琪| 精品人妻一区二区三区四在线| 午夜久久久精品国产精品| 日本欧美一区二区三区在线播| 美女被草的视频在线观看| 少妇高潮呻吟浪语91| 亚洲精品中文字幕熟女| 国产成人午夜av一区二区| 欧美成人免费视频午夜色| 国产欧美日韩综合精品二区| 日韩精品成区中文字幕| 亚洲熟女一区二区三四区| 亚洲av熟女国产一区二区三区站| 黄片在线观看一区二区三区| 国产一区二区三区精品免费| 欧美成人免费视频午夜色| 日韩和欧美的一区二区三区| 亚洲深夜精品福利一区| 亚洲中文字幕视频一区二区| 99少妇偷拍视频在线| 国产一级不卡视频在线观看| 久久99热成人网不卡|