vb addnew的问题
答案:4 悬赏:30 手机版
解决时间 2021-12-01 18:20
- 提问者网友:练爱
- 2021-12-01 07:41
vb addnew的问题
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-12-01 08:42
1)AddNew 方法 (ADO),为可更新的 Recordset 对象创建新记录。
语法:
recordset.AddNew FieldList, Values
参数:
FieldList 可选。新记录中字段的单个、一组字段名称或序列位置。
Values 可选。新记录中字段的单个或一组值。如果 Fields 是数组,那么 Values
也必须是有相同成员数的数组,否则将发生错误。字段名称的次序必须与每个数组中的字段值的次序相匹配。
2)AddNew 方法(远程数据),为可更新的 rdoResultset 对象建立一个新行。
语法:
object.AddNew
object 所在处代表一个对象表达式,其值为“应用于”列表中的一个对象。
3)AddNew 方法范例
该范例使用 AddNew 方法创建具有指定名称的新记录。
Public Sub AddNewX()
Dim cnn1 As ADODB.Connection
Dim rstEmployees As ADODB.Recordset
Dim strCnn As String
Dim strID As String
Dim strFirstName As String
Dim strLastName As String
Dim booRecordAdded As Boolean
' 打开连接。
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=;"
cnn1.Open strCnn
' 打开 Employee 表。
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "employee", cnn1, , , adCmdTable
' 从用户获取数据,雇员 ID 的格式应为:
' 名、中间名和姓的三个首字母,
' 五位数字,以及性别标识 M 或 F。
' 例如,Bill Sornsin 的雇员 ID 为:B-S55555M。
strID = Trim(InputBox("Enter employee ID:"))
strFirstName = Trim(InputBox("Enter first name:"))
strLastName = Trim(InputBox("Enter last name:"))
' 只在用户输入姓和名之后进行。
If (strID <> "") And (strFirstName <> "") _
And (strLastName <> "") Then
rstEmployees.AddNew
rstEmployees!emp_id = strID
rstEmployees!fname = strFirstName
rstEmployees!lname = strLastName
rstEmployees.Update
booRecordAdded = True
' 显示新添加的数据。
MsgBox "New record: " & rstEmployees!emp_id & " " & _
rstEmployees!fname & " " & rstEmployees!lname
Else
MsgBox "Please enter an employee ID, " & _
"first name, and last name."
End If
' 删除新记录,因为这只是演示。
cnn1.Execute "DELETE FROM employee WHERe emp_id = '" & strID & "'"
rstEmployees.Close
cnn1.Close
End Sub
语法:
recordset.AddNew FieldList, Values
参数:
FieldList 可选。新记录中字段的单个、一组字段名称或序列位置。
Values 可选。新记录中字段的单个或一组值。如果 Fields 是数组,那么 Values
也必须是有相同成员数的数组,否则将发生错误。字段名称的次序必须与每个数组中的字段值的次序相匹配。
2)AddNew 方法(远程数据),为可更新的 rdoResultset 对象建立一个新行。
语法:
object.AddNew
object 所在处代表一个对象表达式,其值为“应用于”列表中的一个对象。
3)AddNew 方法范例
该范例使用 AddNew 方法创建具有指定名称的新记录。
Public Sub AddNewX()
Dim cnn1 As ADODB.Connection
Dim rstEmployees As ADODB.Recordset
Dim strCnn As String
Dim strID As String
Dim strFirstName As String
Dim strLastName As String
Dim booRecordAdded As Boolean
' 打开连接。
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=;"
cnn1.Open strCnn
' 打开 Employee 表。
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "employee", cnn1, , , adCmdTable
' 从用户获取数据,雇员 ID 的格式应为:
' 名、中间名和姓的三个首字母,
' 五位数字,以及性别标识 M 或 F。
' 例如,Bill Sornsin 的雇员 ID 为:B-S55555M。
strID = Trim(InputBox("Enter employee ID:"))
strFirstName = Trim(InputBox("Enter first name:"))
strLastName = Trim(InputBox("Enter last name:"))
' 只在用户输入姓和名之后进行。
If (strID <> "") And (strFirstName <> "") _
And (strLastName <> "") Then
rstEmployees.AddNew
rstEmployees!emp_id = strID
rstEmployees!fname = strFirstName
rstEmployees!lname = strLastName
rstEmployees.Update
booRecordAdded = True
' 显示新添加的数据。
MsgBox "New record: " & rstEmployees!emp_id & " " & _
rstEmployees!fname & " " & rstEmployees!lname
Else
MsgBox "Please enter an employee ID, " & _
"first name, and last name."
End If
' 删除新记录,因为这只是演示。
cnn1.Execute "DELETE FROM employee WHERe emp_id = '" & strID & "'"
rstEmployees.Close
cnn1.Close
End Sub
全部回答
- 1楼网友:撞了怀
- 2021-12-01 12:15
本来就是要ADDNEW啊 不ADDNEW 怎么添加新数据?
再要么你直接用 ExecuteSQL(insert into 表) 这种方式就不用ADDNEW
再要么你直接用 ExecuteSQL(insert into 表) 这种方式就不用ADDNEW
- 2楼网友:等灯
- 2021-12-01 11:34
你的数据库有一个callout表,表中有10个字段,rs是数据表的记录集对象,rs.AddNew是在数据表添加记录的SQL语句,程序在执行的这个语句后,准备给数据表添加记录,rs.AddNew语句下面的rs.Fields(1) = Trim(txt1.Text) 等等是向各字段输值,但是你的程序中没有rs.update语句,因此数据库不能更新,记录不会添加到数据库中的。
- 3楼网友:你可爱的野爹
- 2021-12-01 10:12
首先,末尾要加上rs.update
其次,我不明白你strsql = "select * from callout where flag=1"这句话中为什么要加上where flag=1,
既然是添加新记录而不是查找特定的记录,只要s写成trsql = "select * from callout"这样就可以了啊,为什么还要加上查询条件呢,你的表是空的话加了条件的select肯定没有结果啊。
其次,我不明白你strsql = "select * from callout where flag=1"这句话中为什么要加上where flag=1,
既然是添加新记录而不是查找特定的记录,只要s写成trsql = "select * from callout"这样就可以了啊,为什么还要加上查询条件呢,你的表是空的话加了条件的select肯定没有结果啊。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯