Access交流中心

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

窗体的关联表A赋值到表B,漏填栏位退出提醒,我不会,请赐教

2005284111  发表于:2011-07-14 16:53:23  
复制

建立了两个表:  产品明细                领用明细

需要人员领用时,填写领用单,窗体“领用记录”

希望,在领用后,根据窗体“领用记录”的“领用量”,更新物品帐“产品明细”的“数量”栏位,

并希望,在“退出”时,如果“领用量”及“领用理由”之一无填写,就发出提醒窗口。

 

 

想好好几天,还是搞不掂,希望好心人帮帮忙~~

 

附上例子,但为繁体系统做的,因为,公司的系统是繁体系统,若打不开,后续我回家再做个简体版的。

 

 

点击下载此附件

 

Top
煮茶论道 发表于:2011-07-14 19:23:38

打开的确有问题,不过在“退出”时,如果“领用量”及“领用理由”之一无填写,就发出提醒窗口。可以在退出click事件中加入

If IsNull(Me.领用量) or IsNull(Me.领用理由) Then
MsgBox "请把数据填写完整!", vbCritical, "提示:"
Me.领用量.SetFocus
Exit Sub
End If



煮茶论道 发表于:2011-07-14 21:13:00
2005284111 发表于:2011-07-14 22:32:53

老师,有简体版的,请再看看

 

点击下载此附件

煮茶论道 发表于:2011-07-14 23:41:11
2005284111 发表于:2011-07-15 09:32:33
老師,最新那個檔案下載后,解壓出錯,煩請重新上傳,感謝~~~

煮茶论道 发表于:2011-07-15 09:50:31

我下载后解压正常,可能是你的问题,解压包没有问题,要有qq的话qq传给你也可以



煮茶论道 发表于:2011-07-15 16:51:07

Private Sub Command16_Click()
Dim kc As Integer
Me.编号 = Me.编号1
Me.品名 = Me.品名1
Me.领用理由 = Me.领用理由1
Me.领用数量 = Me.领用数量1


If IsNull(Me.领用数量1) Then
MsgBox "请填写领用数量!", vbCritical, "提示:"
Me.领用数量1.SetFocus
Exit Sub
End If

If IsNull(Me.领用理由1) Then
MsgBox "请填写领用理由!", vbCritical, "提示:"
Me.领用理由1.SetFocus
Exit Sub
End If

kc = Me.现库存量 - 领用数量1
Me.剩余数量 = kc
DoCmd.SetWarnings False
ssql = "update 领用明细 set 剩余数量= '" & Me.剩余数量 & "' where 品名='" & Me.品名1 & "'"
DoCmd.RunSQL ssql
MsgBox "数据已经更新!"


DoCmd.Close

End Sub

Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub Form_Open(Cancel As Integer)

End Sub

Private Sub 编号1_AfterUpdate()
Me.品名1 = DLookup("品名", "产品明细", "编号='" & Me.编号1 & " ' ")
Me.现库存量 = DLookup("剩余数量", "领用明细", "编号='" & Me.编号1 & " ' ")
End Sub

Private Sub 主体_Click()

End Sub
把以上代码复制到窗体里就可以了。窗体里原有代码远不删除!



煮茶论道 发表于:2011-07-15 16:51:35
把以上代码复制到窗体里就可以了。窗体里原有代码全部删除!



zhcosin 发表于:2011-07-15 21:24:15

楼上的解答我觉得不是很好,因为有些不重要的字段在录入的时候暂时不填的,这个问题如果你窗体上的控件是绑定型的话我也不知道怎么解决,我的方法窗体上的控件都设计成非绑定的,在确认添加按钮的单击事件中利用SQL的INSERT命令来完成录入工作,这样的好处是,可以根据控件的值是否为空来动态的决定是否要为此字段赋值,下面的链接是一个例子。http://www.accessoft.com/article-show.asp?id=5372



煮茶论道 发表于:2011-07-16 09:20:27

本身我在他的附件里就进行了说明,他的表设计和窗体的设计思路有待改进,我只是按照他的思路来达到他所要的目的而已!



zhcosin 发表于:2011-07-16 17:06:54
如此建议楼主先修改表的设计,要是大楼修到十层了才发现地基有问题为时晚矣。

2005284111 发表于:2011-07-17 18:10:29

为什么“编号1”的  AfterUpdate 事件是这个呢:

 

 

Me.品名1 = DLookup("品名", "产品明细", "编号='" & Me.编号1 & " ' ")
Me.现库存量 = DLookup("剩余数量", "领用明细", "编号='" & Me.编号1 & " ' ")
End Sub

 

为什么“现库存量”是取值“领用明细”呢? 这个,若是你一开始每领用过的物品,就查不到库存量。。。。。

 

老师,我不懂~~~



2005284111 发表于:2011-07-18 15:23:27

感謝   煮茶論道  老師,我已根據老師的提示修改好了系統,感謝你的意見。

 

但仍有一個問題,就是,在數據更新時,會彈出更新提醒的對話框

 

 

 

如果我選擇“否”------“調試”,就會進入到該按鈕的  單擊事件,這個,我不想使用者接觸到我的系統設計,不想他們打開VB的程式碼編寫界面,

那,我該如何做呢?

 

問題比較多,力求完美,期待你的意見,感謝感謝~~~

 



zhcosin 发表于:2011-07-18 17:33:30
在DoCmd.RunSQL前面加一句:DoCmd.SetWarning False,关闭系统提示,再在DoCmd.RunSQL后面加一句:DoCmd.SetWarning True,重新打开系统提示可也。

zhcosin 发表于:2011-07-18 17:40:04

至于领用数量和领用理由没填的话弹出提示框提醒即可:

If IsNull(Me.NumGet) Then  //假设你的领用数量文本框的名称是“NumGet”

    MsgBox "请填写领用数量"

ElseIf IsNull(Me.ReasonGet) Then  //假设你的领用理由文本框的名称是“ReasonGet”

    MsgBox "请填写领用理由"

End If



2005284111 发表于:2011-07-19 10:16:48

感謝各位老師的圍觀,問題已圓滿解決

 

再次感謝~~~



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