I have following code which reads data from a workbook with 2 sheets
sheet 1 -sql template is where I post create statement between %START% and %END%
eg
%START%
CREATE SET TABLE ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
%END%
sheet 2 -contains data which I want to populate using below macro
sample data:
DATABASE NAME TABLE NAME SET/MULTISET TABLE COLUMNS ATTRIBUTE DATATYPE ATTRIBUTE DATALENGTH NULLABLE SCALE PRECISION DATE_TIME_FORMAT CASESPECIFIC
%START%
DWH_ETL_USER WT_DwhEtl_Meta_Batch_Frequency Multiset Batch_Cd VARCHAR 10 Null CHARACTER SET LATIN NOT CASESPECIFIC
DWH_ETL_USER WT_DwhEtl_Meta_Batch_Frequency Multiset Batch_SKey DECIMAL 12 Null 12 2 CHARACTER SET LATIN NOT CASESPECIFIC
DWH_ETL_USER WT_DwhEtl_Meta_Batch_Frequency Multiset Batch_Name VARCHAR 50 Null
DWH_ETL_USER WT_DwhEtl_Meta_Batch_Frequency Multiset Batch_Invoker_Name VARCHAR 50 Null CHARACTER SET LATIN NOT CASESPECIFIC
%END%
Option Explicit
Private Const mcStart = "%START%" ' Start of data flag
Private Const mcEnd = "%END%" ' End of data flag
Private Const shData = "Data" ' Sheet name for source data
Private Const shTemplate = "SQL Template" ' Sheet name for SQL template
Private Const mcSQL = "SQL"
Private Sub CommandButton1_Click()
Dim rData As Range, rSQL As Range, rTemplate As Range, rTest As Range
Dim dRow As Range
Dim lDataStartRow As Long
Dim lTemplateStartRow As Long
Dim lLastNonBlankRow As Long
With Sheets(shTemplate)
Set dRow = .Range("A1").EntireColumn.Find(mcStart, .Range("A65536"), xlValues, xlWhole)
End With
lDataStartRow = dRow.Row + 1
lLastNonBlankRow = Sheets(shTemplate).Range("A65536").End(xlUp).Row
Dim idata As Integer
For idata = lDataStartRow To lLastNonBlankRow - 1
Sheets(mcSQL).Cells(lDataStartRow, 1) = (Sheets(shTemplate).Cells(idata, 1))
lDataStartRow = lDataStartRow + 1
Next idata
Dim tempRow As Integer
tempRow = lDataStartRow
lDataStartRow = 0
idata = 0
With Sheets(shData)
Set dRow = .Range("A1").EntireColumn.Find(mcStart, .Range("A65536"), xlValues, xlWhole)
End With
lDataStartRow = dRow.Row + 1
lLastNonBlankRow = Sheets(shData).Range("A65536").End(xlUp).Row
For idata = lDataStartRow To lLastNonBlankRow - 1
Sheets(mcSQL).Cells(tempRow, 1) = (Sheets(shData).Cells(idata, 3))
Sheets(mcSQL).Cells(tempRow, 2) = (Sheets(shData).Cells(idata, 4))
Sheets(mcSQL).Cells(tempRow, 3) = (Sheets(shData).Cells(idata, 5))
lDataStartRow = lDataStartRow + 1
tempRow = tempRow + 1
Next idata
End Sub
im trying to modify this macro so that I will have output as below but unable to accomplish this , would appreciate if anyone can plz help me on this
CREATE SET TABLE DWH_ETL_USER.WT_DwhEtl_Meta_Batch_Frequency ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
Batch_Cd VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC,
Batch_SKey INTEGER,
Batch_Name VARCHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC,
Batch_Invoker_Name VARCHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC,
UNIQUE PRIMARY INDEX ( Batch_Cd );
Bookmarks