设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: stvent
打印 上一主题 下一主题

[表] 如何获取子窗体中的某一字段值

[复制链接]
21#
发表于 2009-8-7 08:52:02 | 只看该作者
修改:
Private Sub CmdSave_Click()
    Dim x#, x0#, x1#
    Dim curdb As ADODB.Connection
    Dim rec As New ADODB.Recordset
    Dim i As Integer
    Dim Sdate As Date
    Sdate = Date
    Set curdb = CurrentProject.Connection
    'If mDAOTransForm.SaveAll Then
      rec.Open "select DISTINCT 物料编号 from 入库单明细 where 入库单ID='" & Me.Form.入库单ID & "'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirect
      For i = 1 To rec.RecordCount
         '逐个更新不同物料编码的库存数量
        x = DSum("入库数量", "入库单明细", "入库单ID='" & Me.Form.入库单ID & "' and 物料编号 ='" & rec.Fields(0) & "'")
        curdb.Execute "update 库存 set 原有库存=" & x0 & ",现有库存=" & x0 + x & ",库存变动=" & x & ",库存变动日期=#" & Sdate & "# where 物料编号='" & rec.Fields(0) & "'"
        rec.MoveNext
      Next i
    'End If
End Sub
可以通过,If mDAOTransForm.SaveAll Then的判断功能就没有了
22#
 楼主| 发表于 2009-8-7 09:50:55 | 只看该作者
修改:
Private Sub CmdSave_Click()
    Dim x#, x0#, x1#
    Dim curdb As ADODB.Connection
    Dim rec As New ADODB.Recordset
    Dim i As Integer
    Dim Sdate As Date
    Sdate = Date
    Set ...
aslxt 发表于 2009-8-7 08:52


aslxt,我想知道,为何去掉那一句就可以?是什么问题导致的啊?另外,我再想请教一下你,在入库单ID那里,我现想在号码前加个R,(RXXXXX)但我这样一加,就会出错,是Clng定义的问题吗?
23#
发表于 2009-8-7 10:18:03 | 只看该作者
1、如果启用If mDAOTransForm.SaveAll Then就有问题,但问题在哪我也不知道;
2、表的入库单ID虽然是文本,在没有R的时候全是数字组成的文本,可以用clng转换为long类型,如果增加一个R,如R0001,人家没有办法转换为什么数字
24#
 楼主| 发表于 2009-8-7 10:33:19 | 只看该作者
本帖最后由 stvent 于 2009-8-7 10:40 编辑
1、如果启用If mDAOTransForm.SaveAll Then就有问题,但问题在哪我也不知道;
2、表的入库单ID虽然是文本,在没有R的时候全是数字组成的文本,可以用clng转换为long类型,如果增加一个R,如R0001,人家没有办法转换为 ...
aslxt 发表于 2009-8-7 10:18


对于第2,那就是说,没办法这样加了吧?因为现时要区分入库跟出库,必须加个字母在前面
25#
发表于 2009-8-7 10:56:42 | 只看该作者
本帖最后由 aslxt 于 2009-8-7 11:15 编辑

对于第2,也可以处理的,例如你规定入库单ID的格式为"RXXXXX",即R和5位数字的联合.在计算处理入库单ID时,拆分为“R”和“xxxxx”两部分分别进行处理,再合并为处理结果即可。以下示例为入库单编号的处理,规则为R(入库的标识)+年月(6位)+xxx(3位顺序号),新入库单编号是指定月份的入库单的已有最大编号+1
Dim bianhao
      bianhao = Nz(DMax("[编号]", "入库单", "编号 like 'R" & Format(SeverTime, "yyyymm") & "*'"), 0)
      bianhao = "R" & Format(SeverTime, "yyyymm") & Format(Right(Nz(bianhao), 3) + 1, "000")
其中SeverTime为服务器时间。可用你想要的其他日期代替
26#
 楼主| 发表于 2009-8-7 11:29:50 | 只看该作者
Dim stID As String
    Dim scID As String
    If IsNull(Me.OpenArgs) Then
        stID = Nz(DMax("[入库单ID])", "入库单", "入库单ID" Like "R"), 0)
        scID = "R" + CLng(Right(Nz(stID), 5) + 1)

我改成这样还是不行!aslxt,麻烦再指导!
27#
发表于 2009-8-7 11:53:20 | 只看该作者
是不是应该这样:
Dim stID As String
    Dim scID As String
    If IsNull(Me.OpenArgs) Then
        stID = Nz(DMax("[入库单ID])", "入库单", "入库单ID  Like 'R*'" ), 0)
        scID = "R" + FORMAT(CLng(Right(Nz(stID), 5) + 1),"00000")
    END IF
28#
 楼主| 发表于 2009-8-7 12:12:54 | 只看该作者
本帖最后由 stvent 于 2009-8-7 12:28 编辑

aslxt
还是报错的!你可在我之前上传的例子中试试!谢谢你了!~
29#
发表于 2009-8-7 13:07:39 | 只看该作者
Private Sub Form_Open(Cancel As Integer)

    Dim stID As String
    Dim scID
    If IsNull(Me.OpenArgs) Then
        'stID = CLng(Nz(DMax("CLng([入库单ID])", "入库单"), 0)) + 1
        stID = Nz(DMax("[入库单ID]", "入库单", "入库单ID  Like 'R*'"), 0)
        stID = "R" + Format(CLng(Right(Nz(stID), 5) + 1), "00000")

    Else
        stID = Me.OpenArgs
    End If
   
    Set mDAOTransForm = New DAOTransForm
    mDAOTransForm.InitForm Me, "Select * From 入库单 Where 入库单ID='" & stID & "'", _
        Me.入库单明细_子窗体, "Select * From 入库单明细 Where 入库单ID='" & stID & "'"

    If mDAOTransForm.FormDataMode Then
        Me.Caption = "添加入库单"
        Me.入库单ID.DefaultValue = "'" & stID & "'"    Else
        Me.Caption = "编辑入库单"
    End If
        
      Me.入库单明细_子窗体.Form.入库单ID.DefaultValue = "'" & stID & "'"   
   
   If Forms![入库单_录入].[入库单明细_子窗体].Form.Recordset.RecordCount >= 2 Then
      
        Forms![入库单_录入].[入库单明细_子窗体].Form.Recordset.MoveLast
   
   End If
End Sub
30#
 楼主| 发表于 2009-8-7 13:40:30 | 只看该作者
aslxt,成功了,原来是我的过错,非常感谢你的热心帮忙!真的由心的多谢!~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 11:11 , Processed in 0.085448 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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