Access交流中心

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

窗体中附件在第一次保存时没有存储附件,第二次打开添加后才能正确保存附件,请帮忙看看是什么问题?

Ben  发表于:2016-12-16 12:58:05  
复制

一个窗体中带有通用附件,首次添加记录和附件保存后,重新打开时附件没有保存到,重新添加一次附件保存后就可以正常,请帮忙看看是什么地方有问题?谢谢!(自动编号的附件可以一次保存成功)


Option Compare Database
Option Explicit
Private Sub Form_Load()
    On Error GoTo ErrorHandler
    Dim strSQL        As String
    Dim cnn           As Object 'ADODB.Connection
    Dim rst           As Object 'ADODB.Recordset


    ApplyTheme Me
    LoadLocalLanguage Me


    If IsNull(Me.OpenArgs) Then
        Me.DataEntry = True
    End If
    If Me.DataEntry Then
        GoTo ExitHere
    End If
    Me.btnSave.Enabled = Me.AllowEdits
    
   


    Set cnn = CurrentProject.Connection


    strSQL = "SELECT * FROM [TBL_IPO] WHERE [WenJianBianHao]=" & SQLText(Me.OpenArgs)
    Set rst = OpenADORecordset(strSQL, , cnn)
    Me![ChuLiLeiBie] = rst![ChuLiLeiBie]
    Me![WenJianBianHao] = rst![WenJianBianHao]
    Me![Ver] = rst![Ver]
    Me![QianFaRiQi] = rst![QianFaRiQi]
    Me![BenChangXingHao] = rst![BenChangXingHao]
    Me![KeKuanXingHao] = rst![KeKuanXingHao]
    Me![YaoQiuShuLiang] = rst![YaoQiuShuLiang]
    Me![ZuiHouFuYunRiQi] = rst![ZuiHouFuYunRiQi]
    Me![PartNo] = rst![PartNo]
    Me![BOM] = rst![BOM]
    Me![GuiGe] = rst![GuiGe]
    Me![BuMen] = rst![BuMen]
    Me![ShenQingRen] = rst![ShenQingRen]
    Me![BeiZhu] = rst![BeiZhu]
    Me![ShenHeZhuangTai] = rst![ShenHeZhuangTai]
    Me![XiuDingRen] = rst![XiuDingRen]
    Me![XiuDingRiQi] = rst![XiuDingRiQi]
    rst.Close


    
'通过这一行代码的调用实现附件的加载
    Call Me.sfrAttachments.Form.LoadAttachmentData("附件", Me!WenJianBianHao, cnn)
    
  

ExitHere:
    Set rst = Nothing
    Set cnn = Nothing
    Exit Sub


ErrorHandler:
    RDPErrorHandler Me.Name & ": Sub Form_Load()"
    Resume ExitHere
End Sub

Private Sub btnSave_Click()
    On Error GoTo ErrorHandler
    Dim strWhere      As String
    Dim strSQL        As String
    Dim cnn           As Object 'ADODB.Connection
    Dim rst           As Object 'ADODB.Recordset


    If Not CheckRequired(Me) Then Exit Sub
    If Not CheckTextLength(Me) Then Exit Sub
    

    Set cnn = CurrentProject.Connection


    strSQL = "SELECT * FROM [TBL_IPO] WHERE [WenJianBianHao]=" & SQLText(Me![WenJianBianHao])
    Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
    If rst.EOF Then
        rst.AddNew
    End If
    rst![ChuLiLeiBie] = Me![ChuLiLeiBie]
    rst![WenJianBianHao] = Me![WenJianBianHao]
    rst![Ver] = Me![Ver]
    rst![QianFaRiQi] = Me![QianFaRiQi]
    rst![BenChangXingHao] = Me![BenChangXingHao]
    rst![KeKuanXingHao] = Me![KeKuanXingHao]
    rst![YaoQiuShuLiang] = Me![YaoQiuShuLiang]
    rst![ZuiHouFuYunRiQi] = Me![ZuiHouFuYunRiQi]
    rst![PartNo] = Me![PartNo]
    rst![BOM] = Me![BOM]
    rst![GuiGe] = Me![GuiGe]
    rst![BuMen] = Me![BuMen]
    rst![ShenQingRen] = Me![ShenQingRen]
    rst![BeiZhu] = Me![BeiZhu]
    rst![ShenHeZhuangTai] = Me![ShenHeZhuangTai]
    rst![XiuDingRen] = Forms!sysfrmMain!Nickname
    rst![XiuDingRiQi] = Now()
    rst.Update
    rst.Close
    
     '通过这一行代码的调用实现附件的保存
      Call Me.sfrAttachments.Form.SaveAttachmentData("附件", Me!WenJianBianHao, cnn)




    Form_frm_IPO.RefreshDataList
    MsgBoxEx LoadString("Saved Successfully."), vbInformation


  '  If Me.DataEntry Then
       ' ClearControlValues Me
  '  Else
        DoCmd.Close acForm, Me.Name, acSaveNo
   ' End If


ExitHere:
    Set rst = Nothing
    Set cnn = Nothing
    Exit Sub


ErrorHandler:
    RDPErrorHandler Me.Name & ": Sub btnSave_Click()"
    Resume ExitHere
End Sub

 

Top
Ben 发表于:2016-12-18 21:30:21

问题找到了,原来是附件数据来源错了,更改为TMP_Attachments就可以了。




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