如何使用listview设置具有唯一ID的记录串? [英] How to set bunch of records with a unique id using listview?
问题描述
您好,
我们如何使用唯一编号(主键)创建单个记录,其中包括使用Vb6和MS-Access连接的listview控件中的记录行数? />
我尝试过类似的东西...
它一次保存一条记录,但我想将记录(多个)添加到listview,然后用单个id保存所有记录。 />
Hello,
How can we create a single record with a unique number(primary key) which includes number of lines of records in listview control using Vb6 and MS-Access connectivity???
I have tried something like this...
It saves one record at a time but I wanna add records(multiple) to listview and then save all with single id.
Private Sub BtnAdd3_Click()
If .RecordCount > 0 Then
.MoveFirst
Do While Not .EOF
For i = 1 To ListView1.ListItems.Count
SQL = "SELECT A.*,B.* FROM [ASSET] A,[NOTE] B " & _
" WHERE A.AID=B.AID AND BITT='FALSE'"
For j = 1 To ListView1.ListItems(i).ListSubItems.Count
SQL = SQL & "'" & ListView1.ListItems(i).ListSubItems(j).Text & "'"
.Open SQL, CON, 1, 2
.AddNew
!DOC_NO = Text1.Text //contains pk of table
!AID = Text3.Text
!DOC_SUBNO = Text4.Text //contains no. for each line(duplicates)
!LOC_ID = Combo4.ItemData(Combo4.ListIndex)
!SUP_ID = Combo5.ItemData(Combo5.ListIndex)
.Update
.MoveNext
Loop
End If
End Sub
但它没有给出正确的结果... plz help ....
But it''s not giving proper results... plz help....
推荐答案
看看你的代码并想象你想要达到的目标。
SQL
变量是全局变量,我是对的吗?
在这一行:
Have a look at your code and imagine what you are trying to achieve.
SQL
variable is global variable, am i right?
In this line:
SQL = "SELECT A.*,B.* FROM [ASSET] A,[NOTE] B " & _
" WHERE A.AID=B.AID AND BITT='FALSE'"
您正确设置变量值,但取决于listview子项和值的计数,您的 SQL
变量:
you set value for variable correctly, but depends on count of listview subitems and values, your SQL
variable:
SQL = SQL & "'" & ListView1.ListItems(i).ListSubItems(j).Text & "'"
看起来像:
will be looks like:
'first loop
"SELECT A.*,B.* FROM [ASSET] A,[NOTE] B " & _
" WHERE A.AID=B.AID AND BITT='FALSE''subitem1';"
'second loop
"SELECT A.*,B.* FROM [ASSET] A,[NOTE] B " & _
" WHERE A.AID=B.AID AND BITT='FALSE''subitem1''subitem2';"
'and so on...
"SELECT A.*,B.* FROM [ASSET] A,[NOTE] B " & _
" WHERE A.AID=B.AID AND BITT='FALSE''subitem1''subitem2'...'subitem99999';"
使用调试器!
您的查询错误,原因有两个:
1)不使用JOIN'
2)不可更新(可能)
相反
Use debugger!
Your query is wrong, because of 2 reasons:
1) Not using JOIN''s
2) Is not updatable (probably)
Instead
"SELECT A.*,B.* FROM [ASSET] A,[NOTE] B " & _
" WHERE A.AID=B.AID AND BITT='FALSE'"
使用
use
"SELECT A.*, B.* FROM [ASSET] AS A LEFT JOIN [NOTE] AS B " _
" ON A.AID=B.AID WHERE BITT='FALSE'"
更多关于JOINS的信息,请点击此处:
http:// www。 w3schools.com/sql/sql_join.asp [ ^ ]
SQL连接的可视化表示 [ ^ ]
如果你想要重新添加新记录cordset,您的查询需要更新: AddNew方法 [ ^ ]
如果 BITT
字段是位
数据类型,您的查询应如下所示:
More about JOINS you''ll find here:
http://www.w3schools.com/sql/sql_join.asp[^]
Visual Representation of SQL Joins[^]
If you want to add new record to recordset, your query need to be updatable: AddNew method[^]
If BITT
field is Bit
data type, your query should looks like:
"SELECT A.*, B.* FROM [ASSET] AS A LEFT JOIN [NOTE] AS B " _
" ON A.AID=B.AID WHERE BITT=FALSE"
或
or
"SELECT A.*, B.* FROM [ASSET] AS A LEFT JOIN [NOTE] AS B " _
" ON A.AID=B.AID WHERE BITT=0"
请按照下面的说法操作ks:
使用ADO使用MS Visual Basic [ ^ ]
Visual Basic中的ADO代码示例 [ ^ ]
这篇关于如何使用listview设置具有唯一ID的记录串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!