設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

1234
返回列表 發(fā)新帖
樓主: 小何
打印 上一主題 下一主題

[窗體] 主子窗體修改數(shù)據(jù)后提示問題?

[復(fù)制鏈接]

點(diǎn)擊這里給我發(fā)消息

31#
發(fā)表于 2008-2-20 17:12:59 | 只看該作者
在主窗體改數(shù)據(jù)后,進(jìn)入子窗體,肯定會(huì)引發(fā)主窗體的更新事件,所以就有提示了
在子窗體改數(shù)據(jù)后,退出子窗體,又會(huì)引發(fā)子窗體的更新事件,所以就又有提示了
沒辦法的,ACCESS中綁定窗體就是這樣。如果你只想有一次提示,就用非綁定窗體、臨時(shí)表,要花費(fèi)數(shù)倍的功夫,很多的代碼。。。
32#
發(fā)表于 2008-2-20 19:40:10 | 只看該作者
:lol :lol
33#
 樓主| 發(fā)表于 2008-2-24 20:04:39 | 只看該作者
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim st1 As String
If Me.產(chǎn)品名稱.OldValue <> Me.產(chǎn)品名稱 Then st1 = "產(chǎn)品名稱由 " & Me.產(chǎn)品名稱.OldValue & " 修改成 " & Me.產(chǎn)品名稱 & Chr(13)
If Me.單位數(shù)量.OldValue <> Me.單位數(shù)量 Then st1 = st1 & "單位數(shù)量由 " & Me.單位數(shù)量.OldValue & " 修改成 " & Me.單位數(shù)量 & Chr(13)
If Me.單價(jià).OldValue <> Me.單價(jià) Then st1 = st1 & "單價(jià)由 " & Me.單價(jià).OldValue & " 修改成 " & Me.單價(jià) & Chr(13)
If Me.庫存量.OldValue <> Me.庫存量 Then st1 = st1 & "庫存量由 " & Me.庫存量.OldValue & " 修改成 " & Me.庫存量 & Chr(13)
If Me.訂購量.OldValue <> Me.訂購量 Then st1 = st1 & "訂購量由 " & Me.訂購量.OldValue & " 修改成 " & Me.訂購量 & Chr(13)
If Me.再訂購量.OldValue <> Me.再訂購量 Then st1 = st1 & "再訂購量由 " & Me.再訂購量.OldValue & " 修改成 " & Me.再訂購量 & Chr(13)
If Me.中止.OldValue <> Me.中止 Then st1 = st1 & "中止由 " & IIf(Me.中止.OldValue, "是", "否") & " 修改成 " & IIf(Me.中止, "否", "是") & Chr(13)
If Len(Trim(st1)) = 0 Then
    Me.Undo
    Exit Sub
End If
If MsgBox("數(shù)據(jù)已經(jīng)修改" & Chr(13) & Chr(13) & st1 & Chr(13) & Chr(13) & "是否保存?" & _
    Chr(13) & "單擊是保存,單擊否取消修改。", vbInformation + vbYesNo, "修改提示") = vbNo Then
    Cancel = True
    Me.Undo
End If
End Sub

=========================================================================
就是如果當(dāng)該項(xiàng)目沒有數(shù)據(jù)時(shí),輸入新數(shù)據(jù)就不會(huì)提示(如當(dāng)產(chǎn)品名稱里有數(shù)據(jù)時(shí)修改后會(huì)提示,但是當(dāng)沒有數(shù)據(jù)里,在輸入數(shù)據(jù)時(shí)就不會(huì)提示.)
這是為什么啊?

點(diǎn)擊這里給我發(fā)消息

34#
發(fā)表于 2008-2-24 20:40:10 | 只看該作者
當(dāng)該項(xiàng)目沒有數(shù)據(jù)時(shí),就出現(xiàn)了空值,空值無法和字符串比較,用Nz把文本型字段和數(shù)字型字段的空值轉(zhuǎn)換為空字符串即可,注意是否型字段不需要轉(zhuǎn)換:

  1. Private Sub Form_BeforeUpdate(Cancel As Integer)
  2. Dim st1 As String
  3. If Nz(Me.產(chǎn)品名稱.OldValue) <> Nz(Me.產(chǎn)品名稱) Then st1 = "產(chǎn)品名稱由 " & Me.產(chǎn)品名稱.OldValue & " 修改成 " & Me.產(chǎn)品名稱 & Chr(13)
  4. If Nz(Me.單位數(shù)量.OldValue) <> Nz(Me.單位數(shù)量) Then st1 = st1 & "單位數(shù)量由 " & Me.單位數(shù)量.OldValue & " 修改成 " & Me.單位數(shù)量 & Chr(13)
  5. If Nz(Me.單價(jià).OldValue) <> Nz(Me.單價(jià)) Then st1 = st1 & "單價(jià)由 " & Me.單價(jià).OldValue & " 修改成 " & Me.單價(jià) & Chr(13)
  6. If Nz(Me.庫存量.OldValue) <> Nz(Me.庫存量) Then st1 = st1 & "庫存量由 " & Me.庫存量.OldValue & " 修改成 " & Me.庫存量 & Chr(13)
  7. If Nz(Me.訂購量.OldValue) <> Nz(Me.訂購量) Then st1 = st1 & "訂購量由 " & Me.訂購量.OldValue & " 修改成 " & Me.訂購量 & Chr(13)
  8. If Nz(Me.再訂購量.OldValue) <> Nz(Me.再訂購量) Then st1 = st1 & "再訂購量由 " & Me.再訂購量.OldValue & " 修改成 " & Me.再訂購量 & Chr(13)
  9. If Me.中止.OldValue <> Me.中止 Then st1 = st1 & "中止由 " & IIf(Me.中止.OldValue, "是", "否") & " 修改成 " & IIf(Me.中止, "是", "否") & Chr(13)
  10. If Len(Trim(st1)) = 0 Then
  11.     Me.Undo
  12.     Exit Sub
  13. End If
  14. If MsgBox("數(shù)據(jù)已經(jīng)修改" & Chr(13) & Chr(13) & st1 & Chr(13) & Chr(13) & "是否保存?" & _
  15.     Chr(13) & "單擊是保存,單擊否取消修改。", vbInformation + vbYesNo, "修改提示") = vbNo Then
  16.     Cancel = True
  17.     Me.Undo
  18. End If
  19. End Sub
復(fù)制代碼
35#
 樓主| 發(fā)表于 2008-2-24 20:47:33 | 只看該作者
謝謝你,T小寶
36#
發(fā)表于 2008-6-24 12:55:22 | 只看該作者
這個(gè)問題我也想解決,前來學(xué)習(xí)羅
37#
發(fā)表于 2008-7-4 13:54:34 | 只看該作者
下載學(xué)習(xí)
38#
發(fā)表于 2008-12-31 14:44:42 | 只看該作者
DDDDDDDDDDDDDDDDD

評分

參與人數(shù) 1經(jīng)驗(yàn) -10 收起 理由
Henry D. Sy -10 惡意灌水

查看全部評分

39#
發(fā)表于 2009-1-20 19:20:19 | 只看該作者
值得學(xué)習(xí)下~~
40#
 樓主| 發(fā)表于 2024-11-11 20:59:13 | 只看該作者
313
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-13 08:41 , Processed in 0.115537 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表