[英]Generating SQL script from an Excel File (with multiple sheets)
How can we generate SQL scripts (Delete and Update)
based on a column, say A
, value in Excel sheet
.我们如何根据
Excel sheet
中say A
列值生成 SQL 脚本(Delete and Update)
。
Logic runs like this:逻辑运行如下:
If value in A column is Yes, generate a Delete SQL statement for every row which as value in Column A as Yes, otherwise generate a Update SQL statement.如果 A 列中的值为 Yes,则为 A 列中的值为 Yes 的每一行生成一条 Delete SQL 语句,否则生成一条 Update SQL 语句。
Generated SQL script should be automatically saved in a text file/notepad.生成的 SQL 脚本应自动保存在文本文件/记事本中。
To give you a kick start - this works in principle like this:为了让您开始 - 这原则上是这样的:
Function filewrite(ByRef FILE, ByRef TEXT As String) As long
ERR.CLEAR
On Error Resume Next
Dim FF As Long
FF = FreeFile()
On Error Resume Next
Open FILE For Output As #FF
Print #FF, TEXT
Close #FF
filewrite = ERR.NUMBER
On Error GoTo 0
ERR.CLEAR
End Function
sub create_delete_statements(tablename)
dim SQL as string
Dim WS As Excel.Worksheet
Dim WB As Excel.Workbook
open xyz.xls if needed如果需要,打开 xyz.xls
Set WB = AP.Workbooks.Open("Unknown.xls")
chooses a workbook from "Unknown.xls" this will work also same way if you want to use "Sheet2" eg Set WS = WB.Worksheets("Sheet2")从“Unknown.xls”中选择一个工作簿,如果您想使用“Sheet2”,这也将以相同的方式工作,例如 Set WS = WB.Worksheets("Sheet2")
Set WS = WB.Worksheets("Sheet1")
for i=0 to 10
if ws.Cell(i,1).value=-1 then ''use "Sheet1"
databaseid=ws.Cell(i,2).value
SQL=SQL & "DELETE FROM TABLE " & tablename & "where id =" & databaseid & ";" & vblf
endif
next
dim FN as string
on error resume next
err.clear
fn="commands.sql"
kill /delete the old sql file if it exists杀死/删除旧的 sql 文件(如果存在)
if dir(fn)<>"" kill(fn)
pump your statements out抽出你的陈述
fresult= filewrite(fn,SQL)
if err.number + fresult <> 0 msgbox "Something went wrong on file out"
end sub
Have fun:)玩得开心:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.