User Tools

Site Tools


vba:excel:joinsql

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
vba:excel:joinsql [20.09.2016 09:42:31]
yaslaw created
vba:excel:joinsql [20.09.2016 12:53:13] (current)
yaslaw
Line 1: Line 1:
 +<​const>​
 +    version=1.0.0
 +    vdate=03.08.2016
 +    fname=udf_joinsql.bas
 +    ns=%NAMESPACE%
 +    fpath=/​vba/​excel
 +</​const>​
 ====== [VBA][Excel] joinSql ====== ====== [VBA][Excel] joinSql ======
 +==Version %%version%% - %%vdate%%==
 +
 +{{%%fname%%|Download %%fname%% (V-%%version%%)}}
 +
 Ich komme immer wieder zu dem Punkt, wo ich einmalig aus einer Excel-Tabelle SQL-Insert-Scripts erstellen muss. Ich komme immer wieder zu dem Punkt, wo ich einmalig aus einer Excel-Tabelle SQL-Insert-Scripts erstellen muss.
 Bisher habe ich das von Hand mit Formeln zusammengeschustert. Jetzt habe ich aber eine VBA-Funktion geschrieben,​ die mir das mehr oder weniger abnimmt. Bisher habe ich das von Hand mit Formeln zusammengeschustert. Jetzt habe ich aber eine VBA-Funktion geschrieben,​ die mir das mehr oder weniger abnimmt.
  
 +===== Definition =====
 +<code vb>'/​**
 +' * Setz ein einfaches Insert zusammen
 +' * @example ​   =joinSql("​MY_TABLE";​ A$9:Q$9; A11:Q11; A$10:Q$10)
 +' *
 +' * @param ​ Cell/​String ​    Name der Zieltabelle
 +' * @param ​ Range           Range mit den Spaltennamen
 +' * @param ​ Range           Range mit den Daten (eine Zeile)
 +' * @param ​ Range           Range mit den Datentypzuweisung. Die Typenzuweisung ist typ & attribut.
 +' * @param ​ String ​         Name der Sqeunez
 +' * @return String
 +' */
 +Public Function joinSql( _
 +        ByVal iTableName As String, _
 +        ByRef iHeaderRange As Range, _
 +        ByRef iDataRange As Range, _
 +        Optional ByRef iTypeRange As Range, _
 +        Optional ByVal iSequenceName As String _
 +) As String</​code>​
 +
 +==== Typen ====
 +  ***s** ​        ​String ​     text -> '​text'​
 +  ***d** ​        ​Datum ​      ​1.2.2016 -> TO_DATE('​02/​01/​2016',​ '​MM/​DD/​YYYY'​)
 +  ***i** ​        ​SEQUENZ.NEXTVAL
 +  ***x** ​        ​Spalte unterdrücken
 +  *          Wert unverändert zurückgeben
 +          ​
 +  ***n** ​        ​Standard: ​ NULL
 +  ***e** ​        ​Empty: ​    ""​
 +  ***0** ​        ​Null: ​     0
 +  ***t** ​        ​SYSDATE
 +
 +
 +  * Wenn die Spalte keinen Eintrag im HeaderRange hat, wird sie unterdrück
 +  * Unordered List ItemSpalten,​ welche im TypeRange '​x'​ drin haben, werden ebenfalls unterdrückt
 +  * Die Attribute zur Nullregelung können dem Type angehängt werden
 +
 +=== Beispiele zu den Typeneinträgen ===
 +
 +  *sn -> Feld ist ein String, wenn kein Wert vorhanden ist wird der Text NULL ausgegeben
 +  *se -> Wieder ein String. Aber der Leerwert wird als ""​ ausgegeben
 +  *s  -> Wie sn
 +  *0  -> ohne formatierung. Ein Leerwert wird als 0 ausgegeben
 +  *etc.
 +
 +
 +===== Code =====
 +Und hier noch der Code zu den oben bechreibenen Funktionen
  
 +>Dieser Coder ist für Oracle geschrieben. Für andere DBMS müssend ie Konstanten C_DATE_FORMAT und C_DATE_TIMESTAMP ersetzt werden
 +<source '​%%fpath%%/​%%fname%%'​ vb>
  
vba/excel/joinsql.1474357351.txt.gz · Last modified: 20.09.2016 09:42:31 by yaslaw