注册 登录
编程论坛 VB6论坛

老问题求解ADODC+access数据库修改或添加指定位置数据

wxflw 发布于 2012-02-24 14:20, 2260 次点击
我有个表1
姓名 年龄 性别
A    1     5   
B    2     5
C    3     5
D    4     5
E          6
     5   
问题:我用MSHFlexGrid1可以做到只显示“姓名”或“年龄”或”“性别”
     现在我想做到,直接修改姓名E一行中年龄那一个单元格的内容,
     在表中他是一个空值,我用ADDNEW在年龄输入5后变成了直接新建一行
     而不是我想要的在姓名E一行的年龄那个空值改为5,性别同理。
    我的窗口只做了一个text文本框,用来输入查询条件或修改值的
     
     我试过加几个text先导入表一行的内容比如
    text1《“姓名”
    text2《“年龄”
    text3《“性别”
   这样我可以做到修改
  但是我如果在程序运行后在表1新增加了一列,就是在“性别”后面再增加一个“爱好”列后
  我的窗口没有增加text就无法导入进行修改数据了!
  必须要重新做窗口,很麻烦,有没有什么方法定位单元格修改数据的?关键是那个空值。
 
5 回复
#2
yaogh22512012-02-24 22:03
修改为数据后用 Adodc1.Recordset.Update 命令
#3
Artless2012-02-25 00:13
以下是引用wxflw在2012-2-24 14:20:39的发言:

我有个表1
姓名 年龄 性别
A    1     5   
B    2     5
C    3     5
D    4     5
E          6
     5   
问题:我用MSHFlexGrid1可以做到只显示“姓名”或“年龄”或”“性别”
     现在我想做到,直接修改姓名E一行中年龄那一个单元格的内容,
     在表中他是一个空值,我用ADDNEW在年龄输入5后变成了直接新建一行
     而不是我想要的在姓名E一行的年龄那个空值改为5,性别同理。
    我的窗口只做了一个text文本框,用来输入查询条件或修改值的
     
     我试过加几个text先导入表一行的内容比如
    text1《“姓名”
    text2《“年龄”
    text3《“性别”
   这样我可以做到修改
  但是我如果在程序运行后在表1新增加了一列,就是在“性别”后面再增加一个“爱好”列后
  我的窗口没有增加text就无法导入进行修改数据了!
  必须要重新做窗口,很麻烦,有没有什么方法定位单元格修改数据的?关键是那个空值。
 

用text可以做到修改时也用addnew吗?
修改应该使用update。
LZ请不要重复发贴。
#4
wxflw2012-02-25 10:48
addnew是新建,我知道的!我就是修改不知道怎么弄,修改空值或修改一个单元格数据,其他不变,只用一个text文本框输入要修改的值。
恼人的是中间有空值!!
如果用几个文本框导入一行的数据进行修改我也会,关键是等程序运行后我如果再增加一列数据,而文本框无法随之增加,麻烦啊!有其他方法吗?
#5
mayuebo2012-02-26 07:15
update table set 年龄=5,性别=男 where 姓名=E
#6
风吹过b2012-02-26 13:17
你使用 动态 控件数组吧。
做一个 text1(0) 和 lable1(0)
然后,根据你的需要动态加载,保存时,使用循环进行生成 SQL 命令进行保存或更新。

for i=1 to 字段总数(或所需要的字段总数,需要在 SQL 命令中指定)
  load text1(i)
  load lable1(I)
  LABLE1(i)=字段名字(i)
  显示和定位 text1(i) lable1(i)
next i

dim k as string
k="update table set "
for i=1 to 字段总数(或所需要的字段总数,需要在 SQL 命令中指定)
  k=k & 字段名(i) & "=" & text1(i) & " , "    如果有必要的话,可能要对这里加上单引号什么的。看字段类型。
next i
  k=left(k,len(k)-1)
  k=k & "where 姓名=" & 更新那一行的姓名

K就是所需的 SQL 命令。
1