access如何让在窗体中输入记录后保存到表当中?

 我来答
wuqinlon
推荐于2019-10-16 · 超过29用户采纳过TA的回答
知道答主
回答量:71
采纳率:100%
帮助的人:31.6万
展开全部
Private Sub 入库_click()
'默认你的后面的textbox的名称就是前面的名称
'这里的数据类型可能要转换,比如价格可能要转换成double(CDbl()),购买日期转行成日期时间型(CDate())
'假设你的数据表是aa,字段名和界面显示是一样的
Dim Rs As ADODB.Recordset
'在插入前建议你在aa表里查查这条记录是否已经存在,如果已经存在则给出提示(查询条件看你怎么设置的主键了)
Rs = objADO.GetRs("insert into aa (书名,定价,作者,图书类别,出版社,介质,购买日期,内容简介) values (" & 书名.Text & "," & vbCrLf & _
"定价.text & ", " & 作者.text & ", " & 图书类别.text & ", " & 出版社.text & ", " & 介质.text & ", " & 购买日期.text & ", " & 内容简介.text & ")
'这里如果表aa的字段多于界面显示的也没关系,只会给你aa后面括号里的字段赋值,这里后面values的顺序必须和前面的对应
'正确插入后建议给个提示,同时看看有没有必要把界面的所有值清空(图书类别.text = "")
'这里的objADO建议这么定义Public objADO As SqlServer,有别的查询也可以直接用,你自己怎么定义的就换成你自己的
'GetRs的定义在下面,你也可能是dim strsql as string,然后strsql = (上面的插入语句),然后用下面Rs.Open strSql, Conn, adOpenStatic, adLockReadOnly的方法,都行的,就看你自己怎么写的了
End Sub

Public Function GetRs(ByVal strSql As String) As ADODB.Recordset '通过执行SQL语句返回记录集
Dim Rs As ADODB.Recordset

On Error GoTo Err0

If Not OpenDB Then
Exit Function
End If

Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient '使用本地(客户端)游标,这样Rs.RecordCount属性才能正确返回记录集行数
DoEvents
Rs.Open strSql, Conn, adOpenStatic, adLockReadOnly

Set GetRs = Rs
Exit Function

Err0:
If InStr(1, Err.Description, "通讯链接失败") > 0 Then
Set Conn = New ADODB.Connection
LocalStat = "断开" '设置本地数据库连接状态
End If
MsgBox Err.Description
End Function
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式