代码之家  ›  专栏  ›  技术社区  ›  Zaid

我的MS访问控制在追加查询后不显示追加项的文本

  •  0
  • Zaid  · 技术社区  · 15 年前

    相关表格

                                      #One#
    +----------+         +--------------+
    |Quotations|  --->   |PurchaseOrders|
    +----------+    |    +--------------+
             <One>  |  <Many>           |
                    |                   v  #Many#
                    |    +-----------+        +------------+ 
                    v    |QuotedItems|  --->  |OrderedItems|
                         +-----------+        +------------+
                       <Many>      {One}    {Many}
    

    窗体/子窗体

    PurchaseOrders -主窗体,多对一 OrderedItems
    有序项目 -数据表样式子窗体,多对一 采购订单

    Quotations -一对多的桌子 采购订单 用于查询 QuotedItems -一对多的桌子 有序项目 用于查询


    组合框

    这个 Item 控件位于 有序项目 子窗体。它是一个组合框,可运行以下特殊查询:

    SELECT [ID], [Code]
    FROM   [QuotedItems]
    WHERE  [QuotedItems].[Quotation] = Forms.PurchaseOrders.Quotation;
    

    组合框查询按我预期的方式运行;这里没有问题。这个 [ID] 列在视图中隐藏(列宽为零)。


    问题

    当我试图从 五项 单击按钮时的表(根据表单中选定的当前报价单ID筛选)。

    我创建了一个append查询来实现这个调用 CopyQuotedItems2OrderedItems :

    INSERT INTO OrderedItems ( PurchaseOrder, Item, Quantity )
    SELECT PurchaseOrders.ID, QuotedItems.Item, QuotedItems.Quantity
    FROM (    Quotations
              INNER JOIN
              PurchaseOrders
              ON Quotations.ID = PurchaseOrders.Quotation
         )
    
         INNER JOIN
    
         QuotedItems
    
         ON Quotations.ID = QuotedItems.Quotation  
    
    WHERE (((Quotations.ID)=[Forms].[PurchaseOrders].[Quotation]));
    

    这个 复制引用项 按钮 采购订单 然后,窗体运行以下代码:

    Private Sub CopyQuotedItems_Click()
        DoCmd.OpenQuery "CopyQuotedItems2OrderedItems"
    End Sub
    

    附加程序按其应该的方式工作。但是,第二个字段 INSERT 声明-与 项目 控件不显示任何内容,即使在刷新后也是如此。唯一的方法是 Code 可见是选择组合框并从中选择项目。


    1000字…

    在点击之前 复制引用项 (注意组合框在这种情况下有两个条目):

    alt text http://img251.imageshack.us/img251/9529/beforeappendwithcombo.png

    点击后 复制引用项 :

    alt text http://img651.imageshack.us/img651/8175/afterappendclick.png

    问题

    • 首先,为什么我看不到 代码 默认情况下在运行追加查询之后?是因为附加查询插入的值没有以某种方式绑定到组合框吗?
    • 第二,我找错树了吗?如果是的话,我怎么才能把它展示出来 这个 代码 自动列?
    2 回复  |  直到 15 年前
        1
  •  1
  •   Fionnuala    15 年前

    我不确定我是否明白你的意思,但你试过重新询问而不是重新询问吗?

     <Me or form/subform name>.CodeCombo.Requery
    

    可能需要重新查询表单或子表单,但我不这么认为。

    编辑更多信息

    这里的问题是在表中使用查找字段。这是一个反功能,将继续使你的生活困难,伊姆霍。因此,您不会用项目代码更新项目字段,而是使用项目ID:2而不是30105-250G。此外,30105-250G是由部分组成的值。有几种方法可以解决这个问题,最简单的方法可能是再次匹配模型id并提取代码字段。但是,我强烈建议您去掉所有的查找字段,使用关系设计思想。

        2
  •  1
  •   Sam at TVentures    15 年前

    从上世纪90年代的wayyyyyyy看,访问权限没有太大变化。

    <>

    我们过去常常编写“伪造”的过程来强制控件刷新。我已经没有代码了;我们使用了旧的sendkeys等价的暴力。

    我愿意犯错,但在你的情况下,这是我们唯一可靠的工作。