Access交流中心

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

自定义保存函数出错

兔斯基  发表于:2012-04-16 02:54:44  
复制

Option Compare Database
 Dim Rs1, Rs2 As New ADODB.Recordset
 Dim str1, str2 As String

Private Function SaveRec()
    str1 = "Select * From 入库类别表 Where 入库类别编号=" & 入库类别编号
    str2 = "Select * From 出库类别表 Where 出库类别编号=" & 出库类别编号
    Rs1.Open str1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirect
    If Rs1.EOF = True Then Rs1.AddNew
    Rs2.Open str2, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirect
    If Rs2.EOF = True Then Rs2.AddNew
   
    Select Case Me.选项卡
    Case 0
        Rs1!入库类别编号 = Me.入库类别编号
        Rs1!入库类别 = Me.入库类别
    Case 1
        Rs2!出库类别编号 = Me.出库类别编号
        Rs2!出库类别 = Me.出库类别
   
    End Select
    入库类别编号 = Rs1!入库类别编号
    出库类别编号 = Rs2!出库类别编号
    Rs1.Update
    Rs1.Close
    Rs2.Update
    Rs2.Close
    Set Rs1 = Nothing
    Set Rs2 = Nothing
End Function

点击下载此附件

 

Top
兔斯基 发表于:2012-04-16 10:08:35

自己顶一下

 



纵云梯 发表于:2012-04-16 16:55:54

点击下载此附件

 

只更正了【入库】标签的添加按钮。



兔斯基 发表于:2012-04-16 19:59:09

为什么【出库】标签的添加按钮不起作用?




纵云梯 发表于:2012-04-17 08:38:25


纵云梯 发表于:2012-04-17 08:39:25


纵云梯 发表于:2012-04-17 08:39:54


纵云梯 发表于:2012-04-17 08:40:12
纵云梯 发表于:2012-04-17 08:40:55
Private Sub Command4_Click()
Select Case Me.Command4.Caption  '粗心大意,Me.Command1.Caption
    Case "添加"
        If IsEdit2 = True Then  '粗心大意,IsEdit1 = False
            If MsgBox("是否保存你对当前出库类别所作的设置?", vbQuestion + vbYesNo, "提示") = vbYes Then
                Call SaveRec
            Else
                IsEdit1 = False
            End If
        End If
        Me.出库类别编号 = Null
        Me.出库类别 = Null
        Me.出库类别编号.SetFocus
        Me.Command4.Enabled = False
        Me.Command6.Enabled = False
    Case "保存"
        If IsNull(Me.出库类别编号) Then  '粗心大意,Me出库类别编号
            MsgBox "出库类别编号不能为空,请重新输入。", vbInformation, "提示"
            Me.出库类别编号.SetFocus
            Exit Sub
        End If
        If IsNull(Me.出库类别) Then
            MsgBox "出库类别不能为空,请重新输入。", vbInformation, "提示"
            Me.出库类别.SetFocus
            Exit Sub
        End If
        Call SaveRec
        Call SetIsSave2
        Me.Command6.Enabled = True
        Me.出库类别列表.Requery
        Me.出库类别列表 = 出库类别编号
    End Select
End Sub

兔斯基 发表于:2012-04-17 09:27:49
谢谢老师了,这个问题困扰我几天了,我是准备用选项卡把所有的资料都统一用选项页来做。

兔斯基 发表于:2012-04-17 09:53:57
再问下老师:如果类别表中的类别编号是自动编号,会出现“运行错误,标准表达式中数据类型不匹配”,如何按添加按钮时,窗体中的出(入)库类型编号按自动类型编号自动生成新的编号,然后出(入库)类型获得焦点,等等输入?

纵云梯 发表于:2012-04-17 20:25:31

Private Function SaveRec()
    str1 = "Select * From 入库类别表 Where 入库类别编号='" & 入库类别编号 & "'" 

    '如果类别编号为自动编号(即数字),那么引用就要改为 str1 = "Select * From 入库类别表 Where 入库类别编号=" & 入库类别编号  
    str2 = "Select * From 出库类别表 Where 出库类别编号='" & 出库类别编号 & "'"
   
    Rs1.Open str1, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
    If Rs1.EOF = True Then Rs1.AddNew
    Rs2.Open str2, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
    If Rs2.EOF = True Then Rs2.AddNew

    Select Case Me.选项卡
    Case 0
        'Rs1!入库类别编号 = Me.入库类别编号 '因为是自动编号所以不要搞它了,留给电脑帮你加吧。
        Rs1!入库类别 = Me.入库类别
        Rs1.Update
    Case 1
        'Rs2!出库类别编号 = Me.出库类别编号 '因为是自动编号所以不要搞它了,留给电脑帮你加吧。
        Rs2!出库类别 = Me.出库类别
        Rs2.Update
    End Select

    入库类别编号 = Rs1!入库类别编号
    出库类别编号 = Rs2!出库类别编号

    Set Rs1 = Nothing
    Set Rs2 = Nothing
Me.入库类别编号.Requery
End Function



兔斯基 发表于:2012-04-18 09:39:02
好像不行,我把编号字段类型改成自动编号后,保存还是出错,入库保存后显示:“语法错误(操作符丢失)查询表达式‘出库类别编号=’中”。入库保存后显示:“语法错误(操作符丢失)查询表达式‘入库类别编号=’中”。很奇怪

兔斯基 发表于:2012-04-20 10:10:26
我测试后发现:如果空表无数据的时候,没办法保存,只要其中一个表有一条记录就没问题!!!

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