文档详情

用宏编写sql语句.doc

发布:2017-05-08约1.31万字共28页下载文档
文本预览下载声明
用宏编写sql语句 篇一:Excel使用VBA宏生成SQL语句 有时候需要将Excel文件中的数据导入到数据库中,常用的做法是使用程序读取Excel,然后存入数据库;这里换一个方法,用Excel生成SQL语句,然后用这些SQL语句来更新数据库。 本文主要说明Excel如何使用VB宏构造需要的SQL语句,并生成文件。 2、如何添加按钮: 依次打开:视图–工具栏–控件工具箱,选择“命令按钮”,自己画一个就行了; 依次打开:右键–属性,可以修改名称、样式等。 具体操作可以上网找找。 3、如何使用VB宏: 依次打开:工具–宏–安全性,看看你的Excel是否允许使用“宏”。 然后打开:工具–宏–Visual Basic 编辑器,双击左侧的“Sheet1”,然后在右侧的代码区域粘贴如下代码: #39;最大行数 Const MAX_NUM_ROW = 5000 #39;导出文件路径所在单元格 Const PATH_OUTPUT_ROW = 3 Const PATH_OUTPUT_COL = 3 #39;定义列常量 Const NAME_COL = 1 Const GENDER_COL = 2 Const PHONE_COL = 3 Const EMAIL_COL = 4 #39;读取数据开始行数 Const START_ROW = 5 #39;定义数据实体类 Private Type Tmplt NAME As String GENDER As String PHONE As String EMAIL As String End Type #39;行数变量 Dim noOfTmplts As Integer #39;数据实体类数组 Dim TmpltArray(MAX_NUM_ROW) As Tmplt #39;点击按钮触发事件 Private Sub CommandButton1_Click() generateSQL End Sub #39;生成SQL Private Sub generateSQL() makedir initData writeToFile End Sub #39;构建文件输出路径 Private Sub makedir() On Error Resume Next MkDir Sheet1.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL) End Sub #39;读取Excel数据,填充实体类数组 Private Sub initData() Erase TmpltArray noOfTmplts = 0 Dim j As Integer #39;循环读取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 #39;读取实体类数组,生成SQL并写入文件 Private Sub writeToFile() Dim lvOutputPath As String #39;输出文件路径 lvOutputPath = Sheet1.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL) If lvOutputPath = Then MsgBox 没有找到输出文件路径! Exit Sub End If fileNum = FreeFile #39;打开输出文件 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 #39;循环生成SQL For j = 0 To noOfTmplts - 1 nameStr = TmpltArray(j).NAME genderStr = TmpltA
显示全部
相似文档