数据表中有3个字段recordNo,A,B
使用的语言是VB。]
要将满足条件(A.value=B.value)&(B.value=A.value)的记录删除一条。
例如:
recordNo A B
1 10 20
2 20 10
3 12 13
4 12 12
5 13 12
过程完成后:
recordNo A B
1 10 20
2 12 13
3 12 12
请各位给个提示。最好有简单的VB代码(Delphi里是可以简单实现的)。谢谢~
使用的语言是VB。]
要将满足条件(A.value=B.value)&(B.value=A.value)的记录删除一条。
例如:
recordNo A B
1 10 20
2 20 10
3 12 13
4 12 12
5 13 12
过程完成后:
recordNo A B
1 10 20
2 12 13
3 12 12
请各位给个提示。最好有简单的VB代码(Delphi里是可以简单实现的)。谢谢~
解决方案 »
- VB combo1实现中文检索
- mshflesgrid中小数点前如果是0,则不显示,如何能将小数点前的0显示出来呀?
- 请问:如何将Access表中的数据导入到Exel中,非常非常感谢
- 急!请问从哪里能查到VB错误代码对应的具体内容?
- 数据环境是怎么回事???在线等!!!
- 请教:手工点击“文件”-“打开”-选文件类型,文件名-“确定”,要是用webbrowser控件怎么实现这个过程?
- 如何在VB中调用EXCEL打开*.XLS文件?
- 我做VB挂库的问题,但是出现了“出现多步操作,请查每一步状态值”这是什么问题?
- com控件开发
- 为什么就不行呢?
- 请问按钮字体的颜色怎么设置啊?
- 谁有Dao360.dll文件,我的坏了!轻罚一个给我:[email protected]
Dim db As New ADODB.Connection
Dim rs As New ADODB.Recordset
db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\dev.mdb"
db.Open
rs.CursorLocation = adUseClient
rs.Open "select * from traplog where index<334", db, adOpenDynamic, adLockOptimistic
If rs.RecordCount > 0 Then
rs.Move 1
rs.Delete
End If
End Sub
我不大明白(A.value=B.value)&(B.value=A.value)是什么意思,兄弟能解释清楚点要求吗?
1 10 20
2 20 10
3 12 13
4 12 12
5 13 12
第1条记录中字段A的值与第2条记录中的字段B的值相同并且第1条记录中字段B的值与第2条记录中的字段A的值相同,此时删除记录2.
同理删除记录5.
但没有记录与第4条记录满足该条件,所以第四条记录保留下来.最后的数据集合为:
recordNo A B
1 10 20
2 12 13
3 12 12
大家是否已经清楚?有疑问处我可进一步阐明.
recordNo A B
1 10 20
2 20 10
3 12 13
4 12 12
5 13 12
6 12 12
7 10 20
8 10 20
9 20 10
10 12 12
11 45 32
12 53 30结果是否是这样:
recordNo A B
1 10 20
3 12 13
4 12 12
7 10 20
8 10 20
11 45 32
12 53 30
'工程->引用Microsoft ADO Ext. 2.x for DDL and SecurityOption Explicit
Public mCnnString As String '定义连接字符串Private Sub Command1_Click()
Dim mCon As New ADODB.Connection
Dim mTbl As ADOX.Table
Dim mCat As ADOX.Catalog
mCon.CursorLocation = adUseClient
mCon.Open mCnnString
'把适合条件的记录从mTable表插入一个新建的mTemp表中
mCon.Execute "Select mTmp.* Into mTemp From (Select Distinct mTable.* From mTable,(Select * From mTable) As mTemp Where mTable.A = mTemp.B And mTemp.A = mTable.B And mTable.A < mTable.B) As mTmp"
mCon.Execute "Insert Into mTemp Select * From mTable Where recordNo In (Select Min(mTable.recordNo) From mTable Where mTable.A = mTable.B Group By mTable.B)"
mCon.Execute "Insert Into mTemp Select * From mTable Where recordNo Not In(Select Distinct mTable.recordNo From mTable,(Select * From mTable) As mTemp Where mTable.A = mTemp.B And mTemp.A = mTable.B)"
'删除mTable表
mCon.Execute "Drop Table mTable"
'把mTemp的表名改为mTable
Set mCat = New ADOX.Catalog
mCat.ActiveConnection = mCon
Set mTbl = mCat.Tables.Item("mTemp")
mTbl.Name = "mTable"
'释放对象
mCon.Close
Set mCon = Nothing
Set mTbl = Nothing
Set mCat = Nothing
End SubPrivate Sub Form_Load()
mCnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" & ";Persist Security Info=False"
End Sub