【Excel】Excel用VBA编程实现数据库表的SQL生成

1 篇文章 0 订阅

直接上代码

Private Sub SQL嶌惉_Click()
For si = 2 To Workbooks(1).Sheets.Count
 
        Set mysheet = Workbooks(1).Sheets(si)
        tableName = mysheet.Range("AM4").Value
        
        'SQL = SQL & "if exists (select * from sysobjects where name='" & tableName & "') " & vbCrLf
        
        'drop table tableName
        'SQL = SQL & "   drop table [" & tableName & "] " & vbCrLf
        'SQL = SQL & "go " & vbCrLf
        
        Dim SQL As String

        'create table tableName (
        SQL = SQL & "create table [" & tableName & "] ( " & vbCrLf
         '嵟戝峴悢   mysheet.UsedRange.Rows.Count - 6
         MsgBox mysheet.UsedRange.Rows.Count
        
        For i = 6 To mysheet.UsedRange.Rows.Count - 6
            Dim nameStr As String
            Dim typeStr As String
            Dim typeLength As String
            Dim com As String
        
            'lieming
            nameStr = mysheet.Range("P" & i).Value
            'leixing
            typeStr = mysheet.Range("AE" & i).Value
            'zhushi
            refStr = mysheet.Range("E" & i).Value
            
            ' changdu
            typeLength = mysheet.Range("AM" & i).Value
            
            If nameStr <> "" And typeStr <> "" Then
            
                    If i = 6 Then
                        SQL = SQL & "   [" & nameStr & "] " & typeStr & "  primary key not null"  'primary key
                    Else
                        SQL = SQL & "   [" & nameStr & "] " & typeStr & "(" & typeLength & ")"
                    End If
                    
                    If i < mysheet.UsedRange.Rows.Count - 6 Then
                        SQL = SQL & ","
                    End If
                    
                    com = com & "COMMENT ON COLUMN " & tableName & "." & nameStr & " IS '" & refStr & "';" & vbCrLf
                     SQL = SQL & vbCrLf
            
            End If
        Next i

    
        SQL = SQL & ")" & vbCrLf
        SQL = SQL & "go" & vbCrLf
        SQL = SQL & com & vbCrLf
        com = ""
        SQL = SQL & "-----Create table [" & tableName & "] end." & vbCrLf & vbCrLf
    
    Next si
    
TextBox1.Value = SQL


End Sub

注意:通常的时候,excel保存不了,关闭excel直接没了,另存为xlsm格式就可以了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值