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

如题所述

第1个回答  2022-11-16
Private Sub 入库_click()\x0d\x0a'默认你的后面的textbox的名称就是前面的名称\x0d\x0a'这里的数据类型可能要转换,比如价格可能要转换成double(CDbl()),购买日期转行成日期时间型(CDate())\x0d\x0a'假设你的数据表是aa,字段名和界面显示是一样的\x0d\x0a Dim Rs As ADODB.Recordset\x0d\x0a '在插入前建议你在aa表里查查这条记录是否已经存在,如果已经存在则给出提示(查询条件看你怎么设置的主键了)\x0d\x0a Rs = objADO.GetRs("insert into aa (书名,定价,作者,图书类别,出版社,介质,购买日期,内容简介) values (" & 书名.Text & "," & vbCrLf & _\x0d\x0a "定价.text & ", " & 作者.text & ", " & 图书类别.text & ", " & 出版社.text & ", " & 介质.text & ", " & 购买日期.text & ", " & 内容简介.text & ")\x0d\x0a '这里如果表aa的字段多于界面显示的也没关系,只会给你aa后面括号里的字段赋值,这里后面values的顺序必须和前面的对应\x0d\x0a '正确插入后建议给个提示,同时看看有没有必要把界面的所有值清空(图书类别.text = "")\x0d\x0a '这里的objADO建议这么定义Public objADO As SqlServer,有别的查询也可以直接用,你自己怎么定义的就换成你自己的\x0d\x0a 'GetRs的定义在下面,你也可能是dim strsql as string,然后strsql = (上面的插入语句),然后用下面Rs.Open strSql, Conn, adOpenStatic, adLockReadOnly的方法,都行的,就看你自己怎么写的了\x0d\x0aEnd Sub\x0d\x0a\x0d\x0aPublic Function GetRs(ByVal strSql As String) As ADODB.Recordset '通过执行SQL语句返回记录集\x0d\x0a Dim Rs As ADODB.Recordset\x0d\x0a \x0d\x0a On Error GoTo Err0\x0d\x0a \x0d\x0a If Not OpenDB Then\x0d\x0a Exit Function\x0d\x0a End If\x0d\x0a \x0d\x0a Set Rs = New ADODB.Recordset\x0d\x0a Rs.CursorLocation = adUseClient '使用本地(客户端)游标,这样Rs.RecordCount属性才能正确返回记录集行数\x0d\x0a DoEvents\x0d\x0a Rs.Open strSql, Conn, adOpenStatic, adLockReadOnly\x0d\x0a \x0d\x0a Set GetRs = Rs\x0d\x0a Exit Function\x0d\x0a \x0d\x0aErr0:\x0d\x0a If InStr(1, Err.Description, "通讯链接失败") > 0 Then\x0d\x0a Set Conn = New ADODB.Connection\x0d\x0a LocalStat = "断开" '设置本地数据库连接状态\x0d\x0a End If\x0d\x0a MsgBox Err.Description\x0d\x0aEnd Function
相似回答