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, 2, 3 ' 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基础数据的增、删、改的功能,表我们已经建好了,那功能就留给大家自己来操作一下吧。
大家记得给我点赞哦!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义