谁可以帮我一下,字段记录有规律的插入一个0,100分给你们!

sunzhiying888 2003-08-20 03:02:40
这是我的同事用Delphi插入成功的代码,现在我只会vb,用vb怎么实现呢,详细点就是我有个物料表foxpro,用vb操作插入数据,如在0101002D,0101002E ,0101005B第五位插入一个0,现在有五万条记录必须修改,大家快告诉我。用vb方法,谢谢大家啊

procedure TForm1.BitBtn1Click(Sender: TObject);
var S1,S2:String;
begin
at1.Open;
at1.First;
while not at1.Eof do
begin
S1:=copy(at1.fieldByName('item_code').AsString,0,4);
S2:=copy(at1.fieldByName('item_code').AsString,5,9);
//showMessage('[S1]:'+S1+'[S2]:'+S2);
at1.Edit;
at1.FieldByName('item_code').Value:=S1+'0'+S2;
at1.Next;
end;
at1.Post;
end;
...全文
61 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
girl888 2003-08-21
  • 打赏
  • 举报
回复

Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cnstr As String
cnstr = "Driver={Microsoft Visual FoxPro Driver};" & _
"SourceType=DBF;" & _
"SourceDB=;" & app.path & "\data" & _
"Exclusive=No"
cn.Open cnstr
rs.CursorLocation = adUseClient
rs.Open "update XXX.DBF set 字段=left(字段,4)" & "0" & "mid(字段,5)", cn, adOpenKeyset, adLockBatchOptimistic

End Sub
lisong770818 2003-08-21
  • 打赏
  • 举报
回复
妄了说,你要在odbc添加一个连接vfp60
lisong770818 2003-08-21
  • 打赏
  • 举报
回复
Dim dbAdo As New ADODB.Connection
Dim strCon As String
Dim strSql As String

strCon = "dsn=vfp60"
dbAdo.CursorLocation = adUseClient
dbAdo.CommandTimeout = 15
dbAdo.ConnectionString = strCon
dbAdo.Open

strSql = "update 表1 set 内容=left(内容,4)+'0'+right(内容,len(内容)-4)"
dbAdo.Execute strSql
iiboy 2003-08-21
  • 打赏
  • 举报
回复
在VB中最好使用“&”连接字符,如果用“+”号的话可能会有空格在夹在字符串中。
iiboy 2003-08-21
  • 打赏
  • 举报
回复
哦!对了,在字符串联接的时候,最好用"&"而不用"+"。将上面的程序中的"+"改为"&"。
否则的话,在字符串中可能会出现空格。
iiboy 2003-08-21
  • 打赏
  • 举报
回复
Dim s As String

Do While Not Adodc1.Recordset.EOF
s = Left(Adodc1.Recordset("item_code"), 4) + "0" + Mid(Adodc1.Recordset("item_code"), 5)
Adodc1.Recordset.Edit
Adodc1.Recordset("item_code").Value = s
Adodc1.Recordset.Update
Adodc1.Recordset.MoveNext
Loop
LCAAA 2003-08-21
  • 打赏
  • 举报
回复
While Not Adodc1.Recordset.EOF
s1 = Left(Adodc1.Recordset!item_code, 4)
s2 = right(Adodc1.Recordset!item_code, 5)
Adodc1.Recordset!item_code = s1 & "0" & s2
Adodc1.Recordset.MoveNext
Wend
of123 2003-08-21
  • 打赏
  • 举报
回复
dim cnn as adodb.connection

Dim cnstr As String
cnstr = "Driver={Microsoft Visual FoxPro Driver};" & _
"SourceType=DBF;" & _
"SourceDB=;" & app.path & "\data" & _
"Exclusive=No"
cn.Open cnstr
cnn.execute "update 表名 set item_code = left(item_code,4) + '0' + right(item_code,4)"
cnn.close
set cnn = nothing
lxqlogo0 2003-08-21
  • 打赏
  • 举报
回复

Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cnstr As String
cnstr = "Driver={Microsoft Visual FoxPro Driver};" & _
"SourceType=DBF;" & _
"SourceDB=;" & app.path & "\data" & _
"Exclusive=No"
cn.Open cnstr
rs.CursorLocation = adUseClient
rs.Open "update XXX.DBF set 字段=left(字段,4)" & "0" & "mid(字段,5)", cn, adOpenKeyset, adLockBatchOptimistic

End Sub
xayzmb 2003-08-21
  • 打赏
  • 举报
回复
可以结贴了吗?
zgq4u 2003-08-20
  • 打赏
  • 举报
回复
conn.execute "UPDATE Table1
SET name = substring(name, 1, 4) + '0' + substring(name, 5, len(name) - 4)
FROM Table1"

其中name为需要替换的字段
zgq4u 2003-08-20
  • 打赏
  • 举报
回复
conn.execute "UPDATE Table1
SET name = substring(name, 1, 4) + '0' + substring(name, 5, len(name) - 4)
FROM Table1"

其中name为需要替换的字段
xayzmb 2003-08-20
  • 打赏
  • 举报
回复
这样做可以在原表中进行修改
(在字段a的第一个字符后面插入一个"-")
根据你的需要改一下SQL语句
OK.
xayzmb 2003-08-20
  • 打赏
  • 举报
回复
还可以这样
update table1
set a = (left(a,1) & "-" & right(a,(len(a) - 1)))
xayzmb 2003-08-20
  • 打赏
  • 举报
回复
将原先的表改一下名字
再将新表改成你原来表的名字
这样不就行了
我想你也只是做这一次
没必要用VB
直接到数据库中操做就行了
qingming81 2003-08-20
  • 打赏
  • 举报
回复
mutiple-step operation generate errors check each stautus value
不是写代码的人有错误,而是你的表中没有设置主键,请设置一个主键,再用上述代码试试。
xayzmb 2003-08-20
  • 打赏
  • 举报
回复
将原来的表名改一下
再将新表的名字改成原来的表名就行了
如果只做一次
直接到数据库里去操做.
如果每次都要这样做的话.....
我就不能理解了
......
呵呵
说说你的理由先.
sunzhiying888 2003-08-20
  • 打赏
  • 举报
回复
不行啊,表名绝对不能修改的,
xayzmb 2003-08-20
  • 打赏
  • 举报
回复
如果要做修改的话可以这样
select (left(a,1) & "0" & right(a,(len(a) - 1))) as bb into newTableName
from table1

这样就按你的要求建了一个新表newTableName
下面就只需要改一下表的名字就行了
ok?
xayzmb 2003-08-20
  • 打赏
  • 举报
回复
你的要求与这个差不多吧
应该比用循环快出很多.
加载更多回复(10)

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧