有时候需要将Excel文件中的数据导入到数据库中,常用的做法是使用程序读取Excel,然后存入数据库;这里换一个方法,用Excel生成SQL语句,然后用这些SQL语句来更新数据库。
本文主要说明Excel如何使用VB宏构造需要的SQL语句,并生成文件。
点击[这里]下载示例程序
1、先看看生成SQL的界面:
2、如何添加按钮:
依次打开:视图–工具栏–控件工具箱,选择“命令按钮”,自己画一个就行了;
依次打开:右键–属性,可以修改名称、样式等。
具体操作可以上网找找。
3、如何使用VB宏:
依次打开:工具–宏–安全性,看看你的Excel是否允许使用“宏”。
然后打开:工具–宏–Visual Basic 编辑器,双击左侧的“Sheet1”,然后在右侧的代码区域粘贴如下代码:
'最大行数 Const MAX_NUM_ROW = 5000 '导出文件路径所在单元格 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 '读取数据开始行数 Const START_ROW = 5 '定义数据实体类 Private Type Tmplt NAME As String GENDER As String PHONE As String EMAIL As String End Type '行数变量 Dim noOfTmplts As Integer '数据实体类数组 Dim TmpltArray(MAX_NUM_ROW) As Tmplt '点击按钮触发事件 Private Sub CommandButton1_Click() generateSQL End Sub '生成SQL Private Sub generateSQL() makedir initData writeToFile End Sub '构建文件输出路径 Private Sub makedir() On Error Resume Next MkDir Sheet1.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL) End Sub '读取Excel数据,填充实体类数组 Private Sub initData() Erase TmpltArray noOfTmplts = 0 Dim j As Integer '循环读取Excel数据行 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 '读取实体类数组,生成SQL并写入文件 Private Sub writeToFile() Dim lvOutputPath As String '输出文件路径 lvOutputPath = Sheet1.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL) If lvOutputPath = "" Then MsgBox "没有找到输出文件路径!" 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 '循环生成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,这样就可以了!点击你的按钮,看看生成文件了吗?
如果按钮还是编辑状态,关了再打开就行了。
发表评论
相关文章
国内AI资源汇总,AI聊天、AI绘画、AI写作、AI视频、AI设计、AI编程、AI音乐等,国内顺畅访问,无需科学上网。
扫码或点击进入:萤火AI大全
文章分类
最新评论