设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 6105|回复: 28
打印 上一主题 下一主题

[模块/函数] 帮忙看看这段新建记录代码有没有问题

[复制链接]
跳转到指定楼层
1#
发表于 2012-6-12 09:46:47 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yori2007 于 2012-6-12 09:49 编辑

不知道为什么,新建记录,新建以C开头的记录可以成功录入,而以V开头的不能录入。

Public coTBuyInvoice As New Collection

Public Sub NewTBuyInvoice()
On Error GoTo NewTBuyInvoice_Err
Dim mId As String
mId = InputBox("请输入发票号", "提示")
If mId & "" = "" Then
    Exit Sub
End If
If DCount("InvoiceId", "tbTBuyInvoice", "InvoiceId='" & mId & "'") <> 0 Then
    MsgBox "此发票号已经存在,请重新输入!", vbExclamation, "提示"
    Exit Sub
End If

'新建发票
Dim rs As New ADODB.Recordset
rs.Open "tbTBuyInvoice", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
        With rs
            .AddNew
            ![InvoiceId] = mId
            ![BuildDate] = Date
            ![BuildMan] = DLookup("EmployeeId", "tbEmployee", "UserName='" & mUserName & "'")
            .Update
        End With
        rs.Close
        Set rs = Nothing
        DoCmd.Requery
'打开新记录编辑
        Dim fm As Form
        Set fm = New Form_fmTBuyInvoice  ‘打开新窗口
        fm.FilterOn = True
        fm.Filter = "Me.InvoiceId='" & mId & "'"   ‘过滤
        fm.AllowAdditions = False  ‘表头不可编辑
        fm.Caption = "编辑发票" & mId
        fm.Visible = True
        coTBuyInvoice.Add Item:=fm, Key:=CStr(fm.Hwnd)
        Set fm = Nothing
NewTBuyInvoice_Exit:
    Exit Sub
NewTBuyInvoice_Err:
    MsgBox Err.Description
    Resume NewTBuyInvoice_Exit
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
29#
 楼主| 发表于 2012-6-18 08:40:39 | 只看该作者
再帮我看看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
28#
 楼主| 发表于 2012-6-16 10:36:15 | 只看该作者
layaman_999 发表于 2012-6-16 10:17
原来是ADP啊
StrSql = StrSql & " select '" & mId & "', '" & BuildDate & "', '" & DLookup("EmployeeId ...

好,我试试啊,谢谢啊
27#
发表于 2012-6-16 10:23:15 | 只看该作者
Dim mId As String
mId = InputBox("请输入发票号", "提示")
If mId = "" Then Exit Sub

If Nz(DLookup("InvoiceId", "tbTBuyInvoice", "InvoiceId='" & mId & "'"), "") = mId Then
    MsgBox "此发票号已经存在,请重新输入!", vbExclamation, "提示"
    Exit Sub
End If

'新建发票
'====================
Dim StrSql As String '不清楚你的字段类型,'UserName'为文本, #BuildDate#为日期
StrSql = "insert into tbTBuyInvoice(InvoiceId,BuildDate,BuildMan) "
StrSql = StrSql & " select '" & mId & "', '" & BuildDate & "', '" & DLookup("EmployeeId", "tbEmployee", "UserName='" & mUserName & "'") & "'"

CurrentProject.Connection.Execute (StrSql)
exit sub'加个断点=====================
你先用上面的代码试验一下看能否写入表头,BuildDate的变量是从哪里来的,应该没问题吧
26#
发表于 2012-6-16 10:17:43 | 只看该作者
原来是ADP啊
StrSql = StrSql & " select '" & mId & "', '" & BuildDate & "', '" & DLookup("EmployeeId", "tbEmployee", "UserName='" & mUserName & "'") & "'"

日期要把#改为'
25#
 楼主| 发表于 2012-6-16 09:35:30 | 只看该作者
layaman_999 发表于 2012-6-15 21:34
你先把( fm.AllowAdditions = False  ‘表头不可编辑)删了,看看是什么情况
然后看看以V开头的表头数据是 ...

这个问题很奇怪,同样长度的字符串,一个以C开头,一个以V开头,其他都一样,竟然一个可以输入,一个不可以
24#
 楼主| 发表于 2012-6-16 09:34:20 | 只看该作者
andymark 发表于 2012-6-15 21:57
请上传示例好了

公司很早以前做的adp啊,不知道什么时候出现了这种问题,现在还没发上传,正在改成mdb的,做个示例
23#
 楼主| 发表于 2012-6-16 09:32:27 | 只看该作者
layaman_999 发表于 2012-6-15 21:34
你先把( fm.AllowAdditions = False  ‘表头不可编辑)删了,看看是什么情况
然后看看以V开头的表头数据是 ...

数据没有写入,我再研究看看
22#
发表于 2012-6-15 21:57:45 | 只看该作者
请上传示例好了
21#
发表于 2012-6-15 21:34:13 | 只看该作者
你先把( fm.AllowAdditions = False  ‘表头不可编辑)删了,看看是什么情况
然后看看以V开头的表头数据是否已经已经写入表中,如果没有写入的话,那你看看是不是字段类型不对还是字符长度不够。
==========
这些问题要自己多调试调试,看看究竟出问题在哪行代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-21 15:00 , Processed in 0.104783 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表