Access交流中心

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

求教:创建入库单与发票数据库时遇到多对多关系问题如何处理?

luo3212  发表于:2013-10-10 16:48:53  
复制

小弟在医院从事药品会计,每月都要处理大批药品、材料入库单和发票。药品材料入库后,要核对入库单与供应商给来的发票,金额相符就可以写付款计划。出纳付款后我根据付款回执确认已付款。

我 的设想是这样的,建立两个数据表,入库单数据表和发票数据表。由于发票与入库单并非严格的一一对应关系,而是多对多关系,例如:发票1和发票2的总金额对 应入库单A、B、C的总金额。我想追踪发票与入库单的关系,于是建立了一个字段,“付款计划”,该字段人工编号。某一次付发票1和发票2的货款,其对应的 入库单分别是A、B、C,我给该次付款计划一个编号1308001.于是在入库单数据表和发票数据表相应的付款计划字段输入编号“1308001”.??????ش˸???

我的困扰是,发票与入库单繁多,手工录入付款计划编号很麻烦,我想请教各位高手,能不能设计一个窗口,可以自动输入,免去手工输入之苦?


在此处衷心感谢各位大侠耐心看完我的问题!

 

Top
煮江品茶 发表于:2013-10-10 17:43:23

先别着急写程序,要把问题理清楚。找到一种合理的处理模型,然后再动手编程。


你的问题中实际上还少了一个多对多关系,也就是付款单与发票之间也可能是多对多关系。也就是说存在两个环节的问题,其一是发票与入库单,其二是发票与付款单。这就意味着要对这两对单据进行核销,以便确定它们的实时状况。


在核销的处理上,存在两种方法,第一种我称之为逐单核销法,这也就是你现在想到的方法;另外一种是余额核销法,这是你还没意识到可能存在的一种方法。


正如你已经发现的问题,逐单的核销其工作量非常之大,特别在单据之间存在多对多关系时就更难以处理。比如两张发票,对应三入库单,如果发票不是同时到达的话,那就可能不仅仅是核销入库单了,很可能是要核销入库单上的记录。更有甚者,还可能要分解记录进行核销。如果这样去管理的话,需要投入很多的人力物力和时间。所以在企业单据量很大的情况下,这并不是一种很好的管理方法。


正是由于逐单核销存在的管理效率低下的致命弱点,于是就需要另辟蹊径,找到更为有效的处理问题的方法。这个方法我称之为余额核销法。它的处理基点是不考虑每张单据,而是考虑剩余未核销的余额是多少。也就是说每次货物达到后都会记录每种货物的数量,这些数量必将对应供货方必须开出的发票数量,这样就可以分别用数据表来记录两个数据,一个是收货的数量,一个是已达发票的数量。不论发票什么时间到达,都可以计算出,还有那些品种的货物有多少数量的发票没有开具。当某张发票到达时,我们并不需要管它应该对应哪几张入库单,而是直接核对是不是小于等于未开发票的数量就可以了。


同样的原理,我们在应付账款的核销时也可以采用这种方法来进行,不必管它某次付款是支付的那几张发票的应付账款,而只需要核对付款金额是否小于等于欠某企业的应付款余额。


简言之,余额核销就是各类单据,按其到达的先后秩序各自进行记录。记录的过程中需要核对的不是每张单据之间的关系。而是所计算得到的余额与当前单据之间的关系。

 

大多数情况下,人们最先想到的就是逐单核销的方法,认为这个方面最精确。可是这个时候恰恰是忽略了管理效率,人为给自己增加了很多的麻烦。所以管理方法的好坏,不能只考虑一个方面,而忽略其他方面。任何一个好的管理方法,都是平衡与妥协的结果,也就是不追求最好,而追求可行。

 



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