vb addnew的问题
我用的事vb6.0我用rs.addnew想把text1到text10里面的值添加到数据库里面,可是当数据里面为空的时候就没办法添加而当我在数据库里手动加一行数据时候再rs...
我用的事vb6.0
我用rs.addnew想把text1 到text10里面的值
添加到数据库里面,
可是当数据里面为空的时候就没办法添加
而当我在数据库里手动加一行数据时候再rs.addnew就可以
这是为什麼? 怎麼解决啊?
我帖部分代码上去
Private Sub cmdadd_Click() '按添加按钮清空text
txt1.Text = ""
txt2.Text = ""
txt3.Text = ""
txt4.Text = ""
txt5.Text = ""
txt6.Text = ""
txt7.Text = ""
txt8.Text = ""
txt9.Text = ""
txt10.Text = ""
end sub
Private Sub cmdbc_Click() '保存
Dim strsql As String
Dim rs As ADODB.Recordset
strsql = "select * from callout where flag=1"
Set rs = ExecuteSQL(strsql)
rs.AddNew
rs.Fields(1) = Trim(txt1.Text)
rs.Fields(2) = Trim(txt2.Text)
rs.Fields(3) = Trim(txt3.Text)
rs.Fields(4) = Trim(txt4.Text)
rs.Fields(5) = Trim(txt5.Text)
rs.Fields(6) = Trim(txt6.Text)
rs.Fields(7) = Trim(txt7.Text)
rs.Fields(8) = Trim(txt8.Text)
rs.Fields(9) = Trim(txt9.Text)
rs.Fields(10) = Val(Trim(txt10.Text))
end sub
能不能说得再清楚点!我还是不懂你得意思 展开
我用rs.addnew想把text1 到text10里面的值
添加到数据库里面,
可是当数据里面为空的时候就没办法添加
而当我在数据库里手动加一行数据时候再rs.addnew就可以
这是为什麼? 怎麼解决啊?
我帖部分代码上去
Private Sub cmdadd_Click() '按添加按钮清空text
txt1.Text = ""
txt2.Text = ""
txt3.Text = ""
txt4.Text = ""
txt5.Text = ""
txt6.Text = ""
txt7.Text = ""
txt8.Text = ""
txt9.Text = ""
txt10.Text = ""
end sub
Private Sub cmdbc_Click() '保存
Dim strsql As String
Dim rs As ADODB.Recordset
strsql = "select * from callout where flag=1"
Set rs = ExecuteSQL(strsql)
rs.AddNew
rs.Fields(1) = Trim(txt1.Text)
rs.Fields(2) = Trim(txt2.Text)
rs.Fields(3) = Trim(txt3.Text)
rs.Fields(4) = Trim(txt4.Text)
rs.Fields(5) = Trim(txt5.Text)
rs.Fields(6) = Trim(txt6.Text)
rs.Fields(7) = Trim(txt7.Text)
rs.Fields(8) = Trim(txt8.Text)
rs.Fields(9) = Trim(txt9.Text)
rs.Fields(10) = Val(Trim(txt10.Text))
end sub
能不能说得再清楚点!我还是不懂你得意思 展开
5个回答
推荐于2016-02-09 · 知道合伙人软件行家
关注
展开全部
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
展开全部
你的数据库有一个callout表,表中有10个字段,rs是数据表的记录集对象,rs.AddNew是在数据表添加记录的SQL语句,程序在执行的这个语句后,准备给数据表添加记录,rs.AddNew语句下面的rs.Fields(1) = Trim(txt1.Text) 等等是向各字段输值,但是你的程序中没有rs.update语句,因此数据库不能更新,记录不会添加到数据库中的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然不想增加记录,为什么addnew?
把Data1.UpdateControls
Data1.Refresh
去掉
把Data1.UpdateControls
Data1.Refresh
去掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,末尾要加上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肯定没有结果啊。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本来就是要ADDNEW啊 不ADDNEW 怎么添加新数据?
再要么你直接用 ExecuteSQL(insert into 表) 这种方式就不用ADDNEW
再要么你直接用 ExecuteSQL(insert into 表) 这种方式就不用ADDNEW
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询