Access的BOM开发(2)基础信息

哈喽,哈喽,大家好,今天我们接着来做BOM。

上一节课,我们已经把BOM是讲了一下,同时我们还做了两张表,一个是产品信息,一个是BOM表,今天我们就要来上手开发了,今天的我们的任务是来开发一下产品信息功能模块。

功能非常的简单的,就是增、删、改,之前我在视频里有讲解过,因为,我们这次是要做一个简单的BOM系统,所以这一步也是不可缺少的。之前的视频讲的比较简单,刚好借此机会我们再来讲解一下(详细的功能说明我还是在后期的视频教程中来讲解)。

01

为了让我们做的东西更加的像系统,首先,我们先来做一个主窗体,如下图:左边放三个按钮,右边我们放上一个子窗体控件。

然后,我们再做三个窗体

1、产品明细窗体,用来显示产品信息。窗体为数据表窗体。保存名为frmProduct_List

窗体运行后

2、添加一个编辑窗体,如下图,其中ID的文本框的可见设置成否,名称保存为frmProduct_Edit

窗体运行后

3、添加一个产品信息的主窗体,如下图,子窗体就是我们上面添加的那个子窗体,窗体名称保存为frmProduct

窗体运行后

02

接下去,我们来添加一下代码,我们先来添加frmProduct的代码,这个是产品信息的主窗体,四个按钮的代码如下:

'新增
Private Sub btnAdd_Click()

    DoCmd.OpenForm "frmProduct_Edit", acNormal, , , acFormAdd, acDialog
    Me.frmProduct_List.Requery
End Sub

'关闭
Private Sub btnClose_Click()
   On Error Resume Next
   Form_frmMain.frmChild.SourceObject = ""
End Sub
'删除
Private Sub btnDelete_Click()
    If MsgBox("你确定要删除此物料信息?", vbExclamation + vbOKCancel + vbDefaultButton2, "删除提示") = vbCancel Then Exit Sub
    CurrentDb.Execute "delete from tblProduct where ID=" & Me.frmProduct_List!ID
    Me.frmProduct_List.Requery
End Sub
'编辑
Private Sub btnEdit_Click()
    DoCmd.OpenForm "frmProduct_Edit", acNormal, , , acFormEdit, acDialog, Me.frmProduct_List!ID
    Me.frmProduct_List.Requery
End Sub

然后,我们添加一下frmProduct_Edit窗体的代码,基础上就是编辑、加载与关闭的代码:

Private Sub btnCancel_Click()

    DoCmd.Close acForm, Me.Name
End Sub

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

    If IsNull(Me.ProductCode) Then
        MsgBox "物料代码不能为空,请重新输入。", vbExclamation
        Exit Sub
    End If
    If DCount("*""tblProduct""ProductCode='" & Me.ProductCode & "' and ID<>" & Nz(Me.ID, 0)) > 0 Then
        MsgBox "物料代码存在重复,请重新输入。", vbExclamation
        Exit Sub
    End If

    Set cnn = CurrentProject.Connection
    Set rst = CreateObject("ADODB.Recordset")  'New ADODB.Recordset
    strSQL = "select * from tblProduct where ID=" & Nz(Me.ID, 0)
    rst.Open strSQL, cnn, 23 ' adOpenDynamic, adLockOptimistic
    If rst.EOF Then
        rst.AddNew
    End If
    rst!ProductCode = Me.ProductCode
    rst!ProductName = Me.ProductName
    rst!ProductModel = Me.ProductModel
    rst!ProductSpec = Me.ProductSpec
    rst!Unit = Me.Unit
    rst!IsEnabled = Me.IsEnabled
    rst!Remark = Me.Remark
    rst.Update
    rst.Close
    MsgBox "保存成功。", vbInformation
    If Me.DataEntry = False Then DoCmd.Close acForm, Me.Name

ExitErr:
    Set cnn = Nothing
    Set rst = Nothing
    Exit Sub
ErrorMsg:
    MsgBox Err.Description, vbCritical
    Resume ExitErr
End Sub

Private Sub Form_Load()
    On Error GoTo ErrorMsg
    Dim rst As Object ' ADODB.Recordset
    Dim strSQL As String
    Dim cnn As Object ' ADODB.Connection
    If Me.DataEntry Then Exit Sub

    Set cnn = CurrentProject.Connection
    Set rst = CreateObject("ADODB.Recordset"'New ADODB.Recordset
    strSQL = "select * from tblProduct where ID=" & Nz(Me.OpenArgs, 0)
    rst.Open strSQL, cnn
    Me!ID = rst!ID
    Me!ProductCode = rst!ProductCode
    Me!ProductName = rst!ProductName
    Me!ProductModel = rst!ProductModel
    Me!ProductSpec = rst!ProductSpec
    Me!Unit = rst!Unit
    Me!IsEnabled = rst!IsEnabled
    Me!Remark = rst!Remark

    rst.Close
ExitErr:
    Set cnn = Nothing
    Set rst = Nothing
    Exit Sub
ErrorMsg:
    MsgBox Err.Description, vbCritical
    Resume ExitErr
End Sub 

最最最后就是添加一下主窗体frmMain窗体的代码,就是产品信息按钮的单击事件:

Private Sub btnProduct_Click()
    Me.frmChild.SourceObject = "frmProduct"
End Sub

03

最后,一步就是运行测试了,这一步的演示在后期的视频中给大家演示。

那到这里的话,产品信息的功能就做完了,这个呢就是属于系统的基础信息,这个是系统最基本的数据,所以,增、删、改的功能是不可能缺少的。

后面,还有一个BOM基础数据的增、删、改的功能,表我们已经建好了,那功能就留给大家自己来操作一下吧。

大家记得给我点赞哦!

posted @   edonsoft  阅读(31)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示