Access交流中心

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

[5分]为什么在开发平台系统中这样的窗体删除不了所选记录?

lyxiong  发表于:2012-03-04 21:39:29  
复制



 

Top
lyxiong 发表于:2012-03-04 21:41:07


杜超 发表于:2012-03-05 09:01:07
看你代码怎么写的

lyxiong 发表于:2012-03-05 09:46:45


lyxiong 发表于:2012-03-05 09:49:17

代码传不上。

 



lyxiong 发表于:2012-03-05 09:57:21

Option Compare Database
Option Explicit  '强制声明变量

Dim objTree As TreeView
Private Sub Form_Load()

    Dim objNode As Node
    Dim Rst As DAO.Recordset
    Dim strCARGOTYPE_NO As String
    Dim MaxLevel As Integer
    Dim I As Integer

    Set objTree = Me.TreeView0.Object
    objTree.Nodes.Clear

    Set objNode = objTree.Nodes.add(, , "NO.1", "产品分类")    ' 头

    MaxLevel = CurrentDb.OpenRecordset("SELECT CARGOTYPE_LEVEL FROM 产品分类 order by CARGOTYPE_LEVEL desc;")(0).Value

    For I = 1 To MaxLevel

        Set Rst = CurrentDb.OpenRecordset("SELECT CARGOTYPE_LEVEL,CARGOTYPE_NO,CARGOTYPE_NAME FROM 产品分类 where  CARGOTYPE_LEVEL=" & I & ";")

        Do Until Rst.EOF

            If Rst!CARGOTYPE_LEVEL = 1 Then   '顶层菜单
                Set objNode = objTree.Nodes.add("NO.1", 4, "NO." & Trim(Rst!CARGOTYPE_NO), Trim(Rst!CARGOTYPE_NAME))
            Else
                Set objNode = objTree.Nodes.add("NO." & Left(Rst!CARGOTYPE_NO, (Rst!CARGOTYPE_LEVEL - 1) * perSectionLong), 4, "NO." & Trim(Rst!CARGOTYPE_NO), Trim(Rst!CARGOTYPE_NAME))
            End If
            Rst.MoveNext
        Loop
    Next

    Call TreeView0_NodeClick(objTree.Nodes(1))
    Me.subMX_CARGO.SetFocus

End Sub

Private Sub TreeView0_NodeClick(ByVal Node As Object)

    Dim strCARGOTYPE_NO As String
    Dim strSQL As String
    Dim I As Integer
    Dim N As Integer
    Dim strTip As String

    strCARGOTYPE_NO = Right(Node.Key, Len(Node.Key) - 3)
    '判断是否是顶层
    If strCARGOTYPE_NO = "1" Then  '预先定义好的:NO.1,第3位向后的字符,所以是1
        strSQL = "SELECT * FROM 产品档案表;"
        Me.lblTip.Caption = "产品分类"
    Else
        I = Len(strCARGOTYPE_NO)
        strSQL = "SELECT * FROM 产品档案表 WHERE left([CARGO_TYPE]," & I & ")='" & strCARGOTYPE_NO & "';"
        'Debug.Print I
        For N = 1 To I / perSectionLong
            strTip = strTip & Trim(CurrentDb.OpenRecordset("SELECT CARGOTYPE_NAME FROM 产品分类 where left([CARGOTYPE_NO]," _
                                                         & (N * perSectionLong) & ")='" & Left(strCARGOTYPE_NO, (N * perSectionLong)) & "' and CARGOTYPE_LEVEL=" & N & ";")(0).Value) & ">>"
        Next
        strTip = "产品分类" & ">>" & Left(strTip, Len(strTip) - 2)
        Me.lblTip.Caption = strTip
    End If
    'Debug.Print strSQL
    Me.subMX_CARGO.Form.RecordSource = strSQL

End Sub



lyxiong 发表于:2012-03-05 09:57:44

Private Sub TreeView0_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)
    If Button = 2 Then
        CommandBars("增加分类菜单").ShowPopup
    End If
End Sub

Private Sub 货品编码_GotFocus()          '客户代码获得焦点事件
    selectstr = Forms!subMX_CARGO.Me.CARGO_ISSHORT             '给变量赋值,使selectstr等于客户代码的值
    Forms!usysfrmMain!labFind.Tag = 1    '这是个判断条件,当其等于1时点击查询按钮时,打开平台内的查询窗体
    Forms!usysfrmMain!btnEdit.Tag = 999  '当其大于1时点击"修改"按钮时,平台就会自动打开"_Edit"窗体
Exit_货品编码_GotFocus:
    Exit Sub
Err_货品编码_GotFocus:
End Sub

Private Sub Form_Timer()                           '窗体计时器事件
    Acchelp_FindstrRecord (g_CurrentSelectStrID)   '利用平台函数acchelp_findstrrecord找到修改前鼠标所选择的记录
    '计时器执行一次后不再执行
    Me.TimerInterval = 0
End Sub

Public Sub btnDel()        '删除代码
    If MsgBox("您确认要删除吗?", vbYesNo + vbInformation, Forms!usysfrmLogin.Caption) = vbYes Then
        DoCmd.Echo False   '防止屏幕闪动
        Call acchelp_deletefldstrrow("产品档案表", "CARGO_ISSHORT", selectstr) '调用平台自定义函数AccHelp_DeleteFldStrRow,函数的详细说明请看平台帮助第九章
        Forms!usysfrmMain!frmChild.SourceObject = "frmCode_cpdn_child"  '重新加载子窗体frmcode_kh_child,以刷新数据子窗体数据
        DoCmd.Echo True    '打开屏幕闪动,避免黑屏
    End If
End Sub

Public Sub FindEnd()  '查询按钮单击事件
    Forms!usysfrmMain!frmChild.Form.RecordSource = Acchelp_ChildFormRecordSource("qrycode_cpdn", "CARGO_ISSHORT", True)
End Sub
Public Sub btnFind()
    DoCmd.OpenForm "usysfrmFind"   '打开查询窗体
    '给查询窗体的字段选择赋值 字段名称后跟字段类型:1-日期或时间;2-数字;3-文本
    Forms!usysfrmFind!cobfldName.RowSourceType = "值列表"
    Forms!usysfrmFind!cobfldName.RowSource = "货品编码;3;货品名称及规格;3;"                            '上方的字段名称来自查询 qryCode_kh
                                   '指定数据来源为 qryCode_kh
    Forms!usysfrmFind!labDataSource.Caption = "qrycode_cpdn"
End Sub



lyxiong 发表于:2012-03-05 09:58:39
分两次传才能上传

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