Office中国论坛/Access中国论坛

标题: 双击列表框和窗体中数据连接的问题 [打印本页]

作者: mlwbj    时间: 2008-12-18 21:49
标题: 双击列表框和窗体中数据连接的问题
呵呵,又来麻烦大家了。
我想建一个合同发票录入的窗体。由于怕每次都输入合同好,而且想通过合同编号列表框来选择要进行录入发票的合同,然后通过子窗体和主窗体之间合同编号相等的关系,直接录入发票信息就行。
就不用老是麻烦的录入合同号。因为有时一个合同可能有好几十张发票,总是不停的输入合同号码太麻烦了。
另外有时又怕合同号输入错误。由于列表框的数据来源与合同基本信息表。所以就什么合同号输入错误。
不知道,能解决吧。。。
要求:双击列表框的合同编号,然后主窗体和子窗体的数据跟着变化。(我现在列表框的合同编号连点击都点击不动。 )我的数据库使用access2007做的。如果大家打不开,告诉我我把它转成2003版本的。

[ 本帖最后由 mlwbj 于 2008-12-18 22:08 编辑 ]
作者: Henry D. Sy    时间: 2008-12-18 21:52
至少我打不开
作者: mlwbj    时间: 2008-12-18 22:10
好的,我马上重新上传看看。

[ 本帖最后由 Henry D. Sy 于 2008-12-18 22:18 编辑 ]
作者: Henry D. Sy    时间: 2008-12-18 22:17
你1楼说得很乱,
你是想寻找记录
还是添加记录?
作者: mlwbj    时间: 2008-12-18 22:20
想在子窗体添加记录。
但是怕每次重复的输入合同编号麻烦,所以希望通过双击列表框的合同编号,自动是子窗体的合同编号和他对应,在子窗体中就不用再输入合同编号,直接输入发票的其它信息就行。
不知道表达明白没有

[ 本帖最后由 mlwbj 于 2008-12-18 22:25 编辑 ]
作者: Henry D. Sy    时间: 2008-12-18 22:28
子窗体中应该将其与主窗体连接的两个字段删掉。
其实,主窗体的记录源已经没有存在的意义,反而容易出现错误。
作者: mlwbj    时间: 2008-12-18 22:34
我主要是不想重复输入合同编号麻烦。因为每个合同号又是英文,又是数字、又是横杠,有的合同还更长。
要是每张发票都输入属于那个合同,有时一个合同20---30张发票,很麻烦。

[ 本帖最后由 mlwbj 于 2008-12-18 22:39 编辑 ]
作者: Henry D. Sy    时间: 2008-12-18 22:39
access所有对象不要用数字或以数字开头来命名

Private Sub List9_Click()
    If Me.增值税发票管理.Form.NewRecord Then
        Me.增值税发票管理.Form.合同编号 = Me.List9
    End If
End Sub

作者: mlwbj    时间: 2008-12-18 23:13
还是不行,不知道还有别的办法吗。只要能省去重复输入合同号的麻烦就行。
作者: Henry D. Sy    时间: 2008-12-18 23:23
你到底要的是什么样的效果?
作者: mlwbj    时间: 2008-12-18 23:26
省去数据录入时重复录入合同编号的效果就行。因为一个合同编号可能对应很多张发票。
作者: mlwbj    时间: 2008-12-18 23:29
谢谢提醒,我到时把数字都更改掉。

我刚才试了一下,点击列表框中的合同编号,主窗体和子窗体的数据并没有跟着变化。

[ 本帖最后由 mlwbj 于 2008-12-18 23:31 编辑 ]
作者: Henry D. Sy    时间: 2008-12-18 23:31
那就用主子窗体,
假如,你今天输入了a合同的两张发票,明天又要输入a合同的另外一张发票,是不是得寻找原来的记录继续增加记录。
如果是这样,有个缺点,可能会不小心更改原来的记录。
作者: mlwbj    时间: 2008-12-18 23:34
大概就是这样啦,除非操作失误,一般我想不会改变原来的记录。
作者: Henry D. Sy    时间: 2008-12-18 23:44
原帖由 mlwbj 于 2008-12-18 23:34 发表
大概就是这样啦,除非操作失误,一般我想不会改变原来的记录。

帮你设定了原来的记录不能更改或删除
作者: mlwbj    时间: 2008-12-19 00:10
[:12] 谢谢啦,就是我想要的效果。

[:43] 得意一把。
作者: mlwbj    时间: 2008-12-19 00:13
而且设计也很合理。我原来只是想输入的时候小心点(因为水平有限,觉得那样就已经很不错了),没想到你也帮我解决了。真是太好了。
作者: tzh1600    时间: 2008-12-19 14:41
可是这样一来万一输入错误想改不是很麻烦?

我想这种情况,输入发票界面用单一窗体而不是连续的窗体或者数据表,可能会更好,用组合框去引用现有的合同号也同样能满足楼主的要求

版主太有水平了,什么要求都难不倒
作者: Henry D. Sy    时间: 2008-12-19 15:07
我想这种情况,输入发票界面用单一窗体而不是连续的窗体或者数据表,可能会更好,用组合框去引用现有的合同号
我想也是这样。

可是这样一来万一输入错误想改不是很麻烦?
这只是个示例,只是针对某个问题,实际中可以灵活设计的。
作者: mlwbj    时间: 2008-12-19 23:18
麻烦,请帮我看看,我怎么照着你做的示范去做,却怎么也不行啊。我也不知道错在那里。

我不会程序语言,所以只能依葫芦画瓢,不知道那里没理解到,自己也不会修改。

两张表,一张合同发票信息录入_窗体;一张合同支付信息录入窗体(这张表要随时根据合同付款进展进行变动)。
作者: mlwbj    时间: 2008-12-19 23:23
我当初也想过用组合框去引用现有的合同号,但是要是上千份合同,好象用起来就不那么方便了。呵呵,所以我想这样。
不过我是弄不出来,所以只有把难题留给版主了。
作者: Henry D. Sy    时间: 2008-12-19 23:28
控件的名字引用错误,自己先检查一下
作者: mlwbj    时间: 2008-12-19 23:41
    看了半天也没看明白,我把你昨天做的范例,单击列表框事件给复制粘贴过来。怎么会错呢。
If Me.NewRecord Then
        Me.主要标的 = Me.List9
    Else
        Me.主要标的.SetFocus
        DoCmd.FindRecord Me.List9
    End If
我把List9都改成了List107
作者: Henry D. Sy    时间: 2008-12-19 23:52
你的库,版面很乱,还有就是窗体上加了不少图片。
对数据库加于适当的装饰是应该的,但不是现在,而是在调试以后,交付使用前才给予适当的润色。
现在打开您的窗体要按好几次回车。
作者: mlwbj    时间: 2008-12-19 23:52
刚学数据库没多久,基本上不懂程序语言,所以都是照书上和别人教的一点点照猫画虎。其实就根本没懂别人这么做是什么意思。
作者: mlwbj    时间: 2008-12-19 23:52
呵呵,版主说的是,把步骤给弄反了,没做过数据库,以为别人都是直接把窗体设计好,然后在添加数据、控件什么的,这样可以是版面统一。
下次知道怎么做了。

[ 本帖最后由 mlwbj 于 2008-12-20 00:01 编辑 ]
作者: Henry D. Sy    时间: 2008-12-19 23:58
建议按18楼的方法做窗体,这也是单表的常规做法。
至于,组合框行来源数据过多的问题,我们可以利用筛选功能对组合框进行即时筛选,很方便找到你要的合同号的。
作者: Henry D. Sy    时间: 2008-12-20 00:05
给你做个例子,试试在合同编号里输入103看看
作者: mlwbj    时间: 2008-12-20 00:10
[:13] 呵呵,我明白了。谢谢提醒。
作者: mlwbj    时间: 2008-12-20 00:17
谢谢版主。[:12]
作者: tzh1600    时间: 2008-12-20 11:08
原帖由 mlwbj 于 2008-12-19 23:23 发表
我当初也想过用组合框去引用现有的合同号,但是要是上千份合同,好象用起来就不那么方便了。呵呵,所以我想这样。
不过我是弄不出来,所以只有把难题留给版主了。


你现在这样的列表框,要是也上千份合同我估计也是一样难找
作者: mlwbj    时间: 2008-12-30 21:35
合同号比较有规律,所以还比较好找。
作者: mlwbj    时间: 2008-12-30 21:36
现在已经按照版主介绍的方法解决了。
作者: 62267021    时间: 2009-4-3 13:00
我想他是希望点击窗体上的合同号后   在列表中直接添加其他数据 二列表中的合同号是自动生成的




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