如何使用listview设置具有唯一ID的记录串? [英] How to set bunch of records with a unique id using listview?

查看:79
本文介绍了如何使用listview设置具有唯一ID的记录串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,

我们如何使用唯一编号(主键)创建单个记录,其中包括使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆