Создание сценария SQL из файла Excel (с несколькими листами) - PullRequest
0 голосов
/ 10 октября 2019

Как мы можем генерировать сценарии SQL (Delete and Update) на основе столбца, say A, значение в Excel sheet.

Логика работает так:

  1. Если в столбце A указано значение «Да», сгенерируйте оператор «Удалить SQL» для каждой строки, которая в качестве значения в столбце «А» имеет значение «Да», в противном случае сгенерируйте оператор «Обновить SQL».

  2. Сгенерированный сценарий SQL должен выполняться автоматическисохранено в текстовом файле / блокноте.

1 Ответ

0 голосов
/ 10 октября 2019
  1. спросите у Google, как использовать vba
  2. попросите Google узнать, как читать, добавлять и удалять текстовые файлы:)
  3. спросить у Google учебники по SQL
  4. Как Google, как выполнить SQL-файлы для вашего сервера

Чтобы дать вам толчок - это работает в принципе так:

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

открыть xyz.xls, если необходимо

   Set WB = AP.Workbooks.Open("Unknown.xls") 

выбирает рабочую книгу из "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" 

убить / удалить старый файл sql, если он существует

   if dir(fn)<>"" kill(fn)

выкачивать ваши заявления

   fresult= filewrite(fn,SQL) 
   if err.number + fresult <> 0 msgbox "Something went wrong on file out"
end sub

Веселиться :) 1026 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...