Office中国论坛/Access中国论坛

标题: 表结构判断 [打印本页]

作者: ycxchen    时间: 2009-2-10 15:56
标题: 表结构判断
我想从将一个XSL格式的数据表导入到一个表中,但不知如何用代码判断两表结构相同?以便相同时导入,不同时提示不导入。盼各位指教。
作者: Grant    时间: 2009-2-10 16:11
你的结构是否指表字段名称相同
作者: ycxchen    时间: 2009-2-10 16:15
是的,请指教
作者: ACMAIN_CHM    时间: 2009-2-10 16:26
提供一个思路,通过ADO打开XLS文件,并打开对应的SHEET的recordset,然后检查recordset.fields的字段名,字段类型,与目标表的recordset.fields做对比看是否兼容。

rsXls.open "select * from [Excel 8.0;Database=c:\book1.xls].[Sheet1$] ",conn
rsTbl.open  "select * from MyTable",conn

for i = 0 to rsxls.fields.count-1
    if rsXls.fields(i).name = rsTbl.fields(i).name then ...
    if rsXls.fields(i).type= rsTbl.fields(i).type then ...
next





******************
*  一切皆有可能  *
******************

.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/SList/Access .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
作者: ycxchen    时间: 2009-2-10 16:57
4# ACMAIN_CHM
十分感谢CHN!你的思路值得参考。
从本站下载了一例子,其代码用于判别表字段的,具体如下:
On Error GoTo Exit_Err
    DoCmd.OpenForm "数据导入项目"
    Dim CX As Integer
    Dim i As Integer
    Dim strItem As String
    strItem = ""
    Dim xRst As ADODB.Recordset
    Set xRst = CurrentProject.Connection.Execute("Select  * From " & Me.cboTableName.Column(2))
    CX = xRst.Fields.Count
    For i = 0 To CX - 1
        If strItem <> "" Then strItem = strItem & ";"
        strItem = strItem & xRst.Fields(i).Name
    Next
    xRst.Close
    Set xRst = Nothing
    With Forms("数据导入项目")
        .lstA.RowSource = strItem
        .lblA.Caption = Me.cboTableName.Column(1) & "包含的项目:"
        .lstB.RowSource = strCurItem
        If strItem <> strCurItem Then
            MsgBox "将要导入的数据与目标数据项目不符!", 48, "警告"
            .lstB.ForeColor = 255
            'Else
            ' MsgBox "将要导入的数据与目标数据项目相同!", 64, "提示"
        End If
    End With
    Exit Sub
对其中lstA、.lblA.  lstB三个变量不明,在例子中不见有声明变量的语句,最好帮忙写个解释
[attach]34985[/attach]
作者: ycxchen    时间: 2009-2-11 09:00
对5楼的代码有部分看不明,请问,对本问题如何写代码较好?
作者: ycxchen    时间: 2009-2-11 10:01
搞糊涂了,5楼所说的lstA、.lblA.  lstB是窗体控件,原来在查看时看不见。不知5楼的代码完善吗?
作者: chaojianan    时间: 2009-2-11 11:52
谢谢提供代码,收藏了。
作者: ycxchen    时间: 2009-2-11 17:41
还有其它办法吗?
作者: wjsfeng    时间: 2009-2-12 15:35
学习了
作者: ycxchen    时间: 2009-2-12 17:59
看来,只好按4楼的办法解决了




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3