'问题:If tbl.Name = DNames Then 为何这样找不到表呢'为何改成 If tbl.Name = "LX200811工作记录" Then  就可以找到呢
------------------------------------------------------------------------------------
DNames = "LX" & Me.Text1.Text & "工作记录"Dim cnn As New Connection
Dim cat As New Catalog
Dim tbl As Tablecnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DATA\ZZ.mdb;Jet OLEDB:Database Password=AABB1122;Persist Security Info=False;"Set cat.ActiveConnection = cnnFor Each tbl In cat.Tables       If tbl.Name = DNames Then 
       'If tbl.Name = "LX200811工作记录" Then       MsgBox "没有找到数据表!", 64, "注意"
       Exit Sub
       
     

解决方案 »

  1.   

    估计应该是Me.Text1.Text与其他控件串了改成这样测:     if "LX200811工作记录" = DNames then
            msgbox "预期数据"
         else 
            msgbox "控件串了"
         end if       If tbl.Name = DNames Then 
           'If tbl.Name = "LX200811工作记录" Then       MsgBox "没有找到数据表!", 64, "注意"
      

  2.   

    DNames的值是对的   不知道是怎么回事
      

  3.   

    可以肯定DNames = "LX200811工作记录" ?
    并且DNames as String?那可真是有点奇怪了!另外,不要用肉眼来看,有时它会欺骗我们,用代码测试一下: if "LX200811工作记录" = DNames then 
            msgbox "相等" 
        else 
            msgbox "不等" 
     end if 
      

  4.   

    你的tbl.Name的设定值是什么呀?
    大概你出错的原因就是tbl.Name的设定值
      

  5.   


    tbl.Name指的是数据库的表名,这点没错.
      

  6.   

    DNames = "LX" & Me.Text1.Text & "工作记录"值都相等,难道只能做常量比较,不能比较变量??重新开一个新工程来试下啊
      

  7.   

    最笨的办法就是
    设断点看看tbl.Name的值 
    是多少?
      

  8.   

    debug.print DNames,len(DNames)
    For Each tbl In cat.Tables       'If tbl.Name = DNames Then 
           'If tbl.Name = "LX200811工作记录" Then       'MsgBox "没有找到数据表!", 64, "注意"
    debug.print tbl.name,len(tbl.name),tbl.name=dnames
    Exit Sub