Access交流中心

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

[5分]如何加入判断语句?

HWZ  发表于:2012-11-10 08:50:14  
复制

1111

 

Top
殷小宝 发表于:2012-11-10 09:52:02

新增、保存代码都没写,不知道你要的是什么判断语句?

 



HWZ 发表于:2012-11-12 08:40:32
删除语句加入判断,即如明细子窗体中某条记录获得焦点,可以删除;如订单子窗体某条记录获得焦点,可以删除

HWZ 发表于:2012-11-12 08:45:29


Private Sub 删除_Click()

'=====如何加入判断语句,当选择了子窗体"fsub明细"中某条记录,执行上半段代码=======
'=========当选择了子窗体"fsub订单"中某条记录,则执行下半段代码?=======

 '在表中查找并删除当前记录
    If MsgBox("您确认要删除名称为“" & Me.fsub明细.Form.设备 & "”的设备吗?", vbQuestion + vbOKCancel, "") = vbOK Then
        DoCmd.RunSQL "delete from 表2 where 订单ID='" & selectstr & "'"
        Me.fsub明细.Requery
        Exit Sub
    End If

    '在主窗体中查找并删除计划及其明细
    If MsgBox("您确认要删除代码为“" & Me.fsub订单.Form.订单ID & "”的记录及其明细吗?", vbQuestion + vbOKCancel, "") = vbOK Then
        DoCmd.RunSQL "delete from 表2 where 订单ID='" & Me.fsub订单.Form.订单ID & "'"
        DoCmd.RunSQL "delete from 表1 where 订单ID='" & Me.fsub订单.Form.订单ID & "'"

        '刷新
        Me.fsub订单.Requery
        Me.fsub明细.Requery
    End If
End Sub



HWZ 发表于:2012-11-12 10:18:41

怎么高手多不回答?自己再顶顶

 



缪炜 发表于:2012-11-12 14:38:53

Private Sub 删除_Click()

'=====如何加入判断语句,当选择了子窗体"fsub明细"中某条记录,执行上半段代码=======
'=========当选择了子窗体"fsub订单"中某条记录,则执行下半段代码?=======

If MsgBox("你要删除第一个窗体中的数据吗", vbExclamation + vbOKCancel, "提示") = vbOK Then


'在表中查找并删除当前记录
    If MsgBox("您确认要删除名称为“" & Me.fsub明细.Form.设备 & "”的设备吗?", vbQuestion + vbOKCancel, "") = vbOK Then
        DoCmd.RunSQL "delete from 表2 where 订单ID='" & selectstr & "'"
        Me.fsub明细.Requery
        Exit Sub
    End If
Else

    '在主窗体中查找并删除计划及其明细
    If MsgBox("您确认要删除代码为“" & Me.fsub订单.Form.订单ID & "”的记录及其明细吗?", vbQuestion + vbOKCancel, "") = vbOK Then
        DoCmd.RunSQL "delete from 表2 where 订单ID='" & Me.fsub订单.Form.订单ID & "'"
        DoCmd.RunSQL "delete from 表1 where 订单ID='" & Me.fsub订单.Form.订单ID & "'"

        '刷新
        Me.fsub订单.Requery
        Me.fsub明细.Requery
    End If
    End If
End Sub



HWZ 发表于:2012-11-13 10:56:20

未达到需求效果,能否加入判断是选择了哪个子窗体的记录?



cspa 发表于:2012-11-13 11:12:27
你这个有点累了,要删除那个子窗体的某条记录直接选中该记录点鼠标右键选删除记录就行了。我认为加一个删除按钮是多余的(不合理)。

HWZ 发表于:2012-11-13 11:27:12
我的构思是:当选择了“fsub明细”子窗体的某一条记录,则删除按钮标签变为“删除明细”,单击删除明细按钮,则删除明细中的某条记录;当选择了“fsub订单”子窗体的某一条记录,则删除按钮标签变为“删除订单”,单击删除订单按钮,则删除该订单及其明细中的记录。

cspa 发表于:2012-11-13 13:52:51
好吧,那就照你说的做。见附件。点击下载此附件

dbaseIIIer 发表于:2012-11-14 14:29:42

傻傻的!两个状态下出现的功能,干嘛要放在同一个按钮里面操作?


应该是做两个按钮,btnDelete, btnDeleteSub,caption随便你自己写!

btnDeleteSub 覆盖在 btnDelete 上面,同样大小,上面那个的 可见设为 否.

反正 fSub Enter 事件 就 btnDeleteSub.Visible = true

fSub Exit 事件 就  btnDeleteSub.Visible = false


逻辑简单,又好除错!



沈军 发表于:2012-11-17 21:32:23

表1(订单主表)与表2(订单明细表)的关系是一个一对多的关系,当删除表1中的某条数据时,理所当然的也应该删除表2中与表1中相关联的数据记录,如果不是这样操作表2中将会存贮无效的订单明细记录。当我们在关系中设置了表1与表2的一对多关系后,这种删除本身就是非法的、ACCESS也会阻止这种只删主表不删除子表的行为。

因此,删除表1的数据时应该先删除表2的数据再删除表1中的数据,这才是合理的删除步骤。

当只需要删除表2中某条记录表1的数据保持不变时,只需要执行表2中的某条记录或全部的删除操作。

从那个窗体截图上看子窗体1与子窗体2并不是并列的兄弟关系,倒是主窗体与窗体2(下方的窗体)一个数据源,其数据记录在主窗体中已经表现,如果是这样窗体2根本就不需要,是一个多余的窗体,实在是有些浪费资源。



乔峰 发表于:2012-11-30 23:09:16
Option Compare Database
Dim i As Integer
Dim selH As Long

Private Sub fsub订单_Enter()
i = 2
selH = Me.fsub订单.Form.SelHeight
End Sub

Private Sub fsub订单_Exit(Cancel As Integer)
i = 2
selH = Me.fsub订单.Form.SelHeight
End Sub

Private Sub fsub明细_Enter()
i = 1
selH = Me.fsub明细.Form.SelHeight
End Sub

Private Sub fsub明细_Exit(Cancel As Integer)
i = 1
selH = Me.fsub明细.Form.SelHeight
End Sub

Private Sub 删除_Click()

'=====如何加入判断语句,当选择了子窗体"fsub明细"中某条记录,执行上半段代码=======
'=========当选择了子窗体"fsub订单"中某条记录,则执行下半段代码?=======

'在表中查找并删除当前记录
If selH = 0 Then MsgBox "你至少要选择一条记录吧": Exit Sub
If i = 1 Then

If MsgBox("您确认要删除名称为“" & Me.fsub明细.Form.设备 & "”的设备吗?", vbQuestion + vbOKCancel, "") = vbOK Then
DoCmd.SetWarnings False




DoCmd.RunSQL "delete from 表2 where 订单ID='" & selectstr & "'"
 Me.fsub明细.Requery
DoCmd.SetWarnings True
Exit Sub
End If
Else
'在主窗体中查找并删除计划及其明细
If MsgBox("您确认要删除代码为“" & Me.fsub订单.Form.订单ID & "”的记录及其明细吗?", vbQuestion + vbOKCancel, "") = vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "delete from 表2 where 订单ID='" & Me.fsub订单.Form.订单ID & "'"
DoCmd.RunSQL "delete from 表1 where 订单ID='" & Me.fsub订单.Form.订单ID & "'"

'刷新
Me.fsub订单.Requery
Me.fsub明细.Requery
DoCmd.SetWarnings True
End If
End If
End Sub


所谓 1   ,   2   就是判断焦点在哪个窗体上,    selH  就是判断有没有整行选取, 否则就会提示    



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