用excel生成建表语句

sub createTable()

    Columns(1).ClearContents

    Dim tableCount As Integer
    Dim fieldCount As Integer
    Dim fields As String
    Dim eachFieldCount As Integer
    Dim dt As String
    Dim f As String
    
    dt = Format(Now, "YYYYMMDDHHMMSS")
    f = ThisWorkbook.Path & "/createTable" & dt & ".txt"
    Open f For Output As #1
    
    tableCount = Int(Sheet4.Cells(1, 2))
    fieldCount = Int(Sheet4.Cells(1, 4))
    MsgBox ("汇总: 表的总数为" & tableCount & "  " & "字段的总数为" & fieldCount)

    For i = 1 To tableCount
        fields = ""
        eachFieldCount = 0
        For j = 1 To fieldCount
            If Sheet2.Cells(表:表名) = Sheet1.Cells(字段:表名) Then
                fields = fields + "`" + Trim(Sheet2.Cells(字段:字段名)) + "`" + "  " + Trim(Sheet2.Cells(字段:类型)) + "  " + "  comment  " + "'" + Trim(Sheet2.Cells(字段:comment)) + "'" + "," + Chr(10)
                eachFieldCount = eachFieldCount + 1
            End If
        Next

        fields = Left(fields, Len(fields) - 2)
    
        Print #1, "-- 创建表" + CStr(i) + "----" + Sheet1.Cells(表:表名) + ",字段数" + "----" + CStr(eachFieldCount)
        Print #1, "CREATE  TABLE IF NOT EXISTS " + "`" + "数据库名." + Sheet1.Cells(表:表名) + "`"
        Print #1, "("
        Print #1, fields
        Print #1, ")" + " comment " + "'" + Trim(Sheet1.Cells(表:comment)) + " '"
        Print #1, "ROW FORMAT DELIMITED FIELDS TERMINATED BY ','"
        Print #1, "stored As textfile;"
        Print #1, ""
        
        Sheet3.Cells(存放每张表的字段数) = eachFieldCount
        
    Next
    
    Close #1

End Sub

你可能感兴趣的:(hive,vba,数据仓库)