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

如图

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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-22
不一定要写代码的。设计窗体成一个数据窗口就可以直接输入了。一句代码都不用的,
记得用生成窗体向导,
第2个回答  2011-12-22
Private Sub Command6_Click()
Dim rs As New ADODB.Recordset

If IsNull(Text1.Value) Or Trim(Text1.Value) = "" Then
Exit Sub
End If

rs.Open "select * from tName", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.AddNew
rs.Fields("fName") = Text1.Value
rs.Fields("fAge") = Text4.Value
rs.Update

Set rs = Nothing
End Sub
相似回答