Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

代码整合 谢谢老师

飘摇王  发表于:2015-07-10 10:19:28  
复制

一个是创建表一个是连接表,加了个判断,if me.sqlline=0,就执行创建表,=1就执行连接表,

现在想给整合到一起,可是if语句咋放都不好用,老师给整合一下 谢谢

 

Private Sub CMD_CSH_Click()  '创建表
    Dim cnn As String
    Dim dbs As Object    'Database
    Dim tdf As Object    'DAO.TableDef
    '指定的数据库文件
    Dim strPath As String
    If Mid(Me.DataLine, 1, 1) = "." Then
        strPath = CurrentProject.Path & Mid(Me.DataLine, 2)
    Else
        strPath = Me.DataLine
    End If

    Set dbs = CurrentDb
    '下面是ODBC连接SQL字符串
    strConnect = "ODBC;DRIVER=SQL Server" & _
                 ";SERVER=192.168.0.4" & _
                 ";DATABASE=" & Me.ufyear & _
                 ";UID=" & Me.user & _
                 ";PWD=" & Me.Pass
    '判断表是否存在后台数据库中
    '请注意一定要引用Microsoft ADO Ext. 2.x for DLL and Security
    Dim ConnStr, oCat
    ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath
    Set oCat = CreateObject("ADOX.Catalog")
    oCat.ActiveConnection = ConnStr
    For I = 0 To oCat.Tables.Count - 1
        If oCat.Tables(I).Name = Me.表名 Then
            dbs.Execute "Drop table " & strPath & "." & Me.表名    '删除表

            '判断表是否存在如果存在删除链接
            If ExistTable("SQL" & Me.表名) Then
                DoCmd.DeleteObject acTable, "SQL" & Me.表名    '如果存在删除链接
            Else
                If ExistTable(Me.表名) Then
                    DoCmd.DeleteObject acTable, Me.表名
                End If
            End If

            Exit For
        End If
    Next
    Set oCat = Nothing
    Set oTbl = Nothing

    Set tdf = dbs.CreateTableDef("SQL" & Me.表名)  '创建链接表,命名为SQL+表名
    tdf.Connect = strConnect          '连接表
    tdf.SourceTableName = Me.表名    'SQL源表
    dbs.TableDefs.Append tdf
    Set dbs = Nothing
    Set tdf = Nothing

    CurrentDb.Execute "Select * into " & strPath & "." & Me.表名 & " from sql" & Me.表名   '复制创建表"
    DoCmd.DeleteObject acTable, "SQL" & Me.表名    '删除链接
    DoCmd.TransferDatabase acLink, "Microsoft Access", strPath, acTable, Me.表名, Me.表名    '连接表

End Sub
Private Sub CMD_CSHA_Click()  '只作SQL连接表
    Dim cnn As String
    Dim dbs As Object    'Database
    Dim tdf As Object    'DAO.TableDef
    '指定的数据库文件
    Dim strPath As String
    If Mid(Me.DataLine, 1, 1) = "." Then
        strPath = CurrentProject.Path & Mid(Me.DataLine, 2)
    Else
        strPath = Me.DataLine
    End If

    Set dbs = CurrentDb
    '下面是ODBC连接SQL字符串
    strConnect = "ODBC;DRIVER=SQL Server" & _
                 ";SERVER=192.168.0.4" & _
                 ";DATABASE=" & Me.ufyear & _
                 ";UID=" & Me.user & _
                 ";PWD=" & Me.Pass

    Set tdf = dbs.CreateTableDef("SQL" & Me.表名)  '创建链接表,命名为SQL+表名
    tdf.Connect = strConnect          '连接表
    tdf.SourceTableName = Me.表名    'SQL源表
    dbs.TableDefs.Append tdf
    Set dbs = Nothing
    Set tdf = Nothing


End Sub

 

 

Top
杜超 发表于:2015-07-12 16:47:40
有示例吗

易勋 发表于:2015-07-14 15:34:14
将你的附件上传上来吧

飘摇王 发表于:2015-07-15 08:25:17

点击下载此附件

附件 谢谢老师



总记录:3篇  页次:1/1 9 1 :