2012-01-27 89 views
0

这里是我的代码如何更新记录

Dim Cn1 As ADODB.Connection 
Dim iSQLStr As String 
Dim field_num As Integer 


Set Cn1 = New ADODB.Connection 
Cn1.ConnectionString = _ 
    "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _ 
    "DefaultDir=" & "C:\path\" 
Cn1.Open 

iSQLStr = "Select * FROM " & "file.txt" ' & " ORDER BY " & txtField.Text 
field_num = CInt(1) - 1 
Set Rs1 = Cn1.Execute(iSQLStr) 
lstResults.Clear 

While Not Rs1.EOF 
    DoEvents 
    Rs1.Fields(field_num).Value = "qaz" 
    If IsNull(Rs1.Fields(field_num).Value) Then 
     lstResults.AddItem "<null>" 
    Else 
     lstResults.AddItem Rs1.Fields(field_num).Value 
    End If 
    Rs1.MoveNext 
Wend 

我的错误是在这条线

Rs1.Fields(field_num).Value = "qaz" 

它说:“当前Recordset不支持更新”,什么是错的代码?

+0

您无法使用文本ODBC驱动程序更新/删除我担心,您需要自己解析文件。 – 2012-01-27 12:18:18

+0

所以,我应该怎么操作大文件(200万行文本文件),就像我想在文本文件中添加行号一样。 – 2012-01-27 12:23:29

+1

将其全部打开到内存中并分成一行或一行一行,然后按照您认为合适的方式进行编辑 – 2012-01-27 12:30:29

回答

0

我不知道这是否是有效的文本文件,但使用SQL Server,你需要改变LockTypeEnum值设置为允许编辑看到这link,默认是adLockReadOnly

编辑

根据此link它不可能通过ADO编辑文本文件。