Генерировать MySQL «Создать»-статус с использованием OpenCALC и VBAMySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 Генерировать MySQL «Создать»-статус с использованием OpenCALC и VBA

Сообщение Anonymous »

:) < /p>
Я рассматриваю небольшой проект, и он связан с следующим: < /p>
вместо открытия phpmyadmin и борьбы с щелчком по всем полям, которые я хочу сделать следующие.

Код: Выделить всё

A1 = Cellnumber of table name (e. g. "C1")
C1 = Table name

E1 = sql-Output

A4 = field_name,
B4 = datatype
C4 = length
D4 = NULL
E4 = auto_increment
...
< /code>
Большинство полей выпадают, например, Datatype (Integer, Text, Json, ...) < /p>
В следующих строках я объявляю свою базу данных Meta Data. < /p>
A5 = id
B5 = int
C5 = 7
D5 = ...

A6 = name
B6 = text
C6 = ...
< /code>
Я закодировал Makro, который вставляется в ячейку E1, например, < /p>
CREATE TABLE `Test` (
`id` INT(20) NULL AUTO_INCREMENT,
`name` TEXT(100) NOT NULL DEFAULT 'easymathematics'
);
< /code>
выглядит так < /p>
Sub CreateTableSQL
Dim oDoc As Object, oSheet As Object
oDoc = ThisComponent
oSheet = oDoc.Sheets(0)

Dim tableName As String
Dim tableCell as String
Dim startFor as Integer
tableCell = Trim(oSheet.getCellRangeByName("A1").String)
tableName = Trim(oSheet.getCellRangeByName(tableCell).String)
startFor = Trim(oSheet.getCellRangeByName("B2").String)

If tableName = "" Then
MsgBox "Bitte Tabellennamen in C1 eingeben.", 48, "Hinweis"
Exit Sub
End If

Dim sql As String
sql = "CREATE TABLE `" & tableName & "` (" & Chr(10)

Dim i As Integer
For i = (startFor-1) To 100
Dim colName As String, colType As String, colLen As String
Dim colNull As String, autoInc As String, defVal As String

colName = Trim(oSheet.getCellByPosition(0, i).String) ' A

If colName = "" Then Exit For

colType = UCase(Trim(oSheet.getCellByPosition(1, i).String)) ' B
colLen = Trim(oSheet.getCellByPosition(2, i).String)         ' C
colNull = UCase(Trim(oSheet.getCellByPosition(3, i).String)) ' D
autoInc = LCase(Trim(oSheet.getCellByPosition(4, i).String)) ' E
defVal = Trim(oSheet.getCellByPosition(5, i).String)         ' F

sql = sql & "  `" & colName & "` " & colType

If colLen  "" Then
sql = sql & "(" & colLen & ")"
End If

If colNull = "NOT NULL" Then
sql = sql & " NOT NULL"
Else
sql = sql & " NULL"
End If

If defVal  "" Then
sql = sql & " DEFAULT '" & defVal & "'"
End If

If autoInc = "ja" Then
sql = sql & " AUTO_INCREMENT"
End If

sql = sql & "," & Chr(10)
Next i

sql = Left(sql, Len(sql) - 2) ' letztes Komma entfernen
sql = sql & Chr(10) & ");"

'MsgBox sql, 0, "SQL-Statement"
oSheet.getCellRangeByName("E1").String = sql
End Sub
< /code>
Я создал это с помощью Chatgpt, хорошо? :) < /p>
Так что я надеюсь, что это поможет мне все время создавать таблицы, а не открытые phpmyadmin. : D < /p>
Я хочу сделать вставку, в котором вводит строку данных с id = 0 и содержит метадаты для ячеек.$crud->show_as( hard code )
< /code>
Я планирую получить эти метадаты из нула. < /p>
Может ли кто-нибудь помочь мне с идеями?id=0, {display_as: My Name, show_view = true, ...}, {display_as: next_column, ...}

Мой план состоит в том, чтобы генерировать вставку, которое помещает эти json-стрижки.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... lc-and-vba
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «MySql»