第一个----字段变量赋值给内存变量问题:
var
v_min,v_max:integer;
.........
begin
mdbpath := '.\my_data.mdb'; //MDB路径
xlspath := '.\to_printer.XLS'; //Excel路径
//取出需要打印的最小和最大记录号
adoquery1.SQL.Clear;
adoquery1.Parameters.Clear;
adoquery1.ParamCheck:=True;
adoquery1.SQL.Add('SELECT id_min,id_max FROM can_shu WHERE id=1'); //can_shu是my_data.mdb里的一张表
adoquery1.open;
v_min:=adoquery1.FieldByName('id_min').Value;//或.AsInteger;
v_max:=adoquery1.fieldbyname('id_max').Value;//或.AsInteger;
把鼠标移到value能看到数据,但把鼠标移到v_min、v_max怎么都看不到数据?感觉上面赋值语句有问题第二个----我想根据上面的v_min和v_max,取出Excel中id号大于等于v_min并且小于等于v_max记录,并插到to_printer表中。
sSql :=
'INSERT INTO to_printer (ID号,用户名称,客户地址,总金额)' +
' SELECT' +
' ID号,用户名称,客户地址,总金额' +
' FROM [excel 8.0;database=' + xlspath + '].[to_printer$] WHERE ID号>=inttostr(v_min) AND inttostr(v_max);
上行中where之后的部分(红字部分)老是通不过,请问,where之后的条件语句怎么写?
var
v_min,v_max:integer;
.........
begin
mdbpath := '.\my_data.mdb'; //MDB路径
xlspath := '.\to_printer.XLS'; //Excel路径
//取出需要打印的最小和最大记录号
adoquery1.SQL.Clear;
adoquery1.Parameters.Clear;
adoquery1.ParamCheck:=True;
adoquery1.SQL.Add('SELECT id_min,id_max FROM can_shu WHERE id=1'); //can_shu是my_data.mdb里的一张表
adoquery1.open;
v_min:=adoquery1.FieldByName('id_min').Value;//或.AsInteger;
v_max:=adoquery1.fieldbyname('id_max').Value;//或.AsInteger;
把鼠标移到value能看到数据,但把鼠标移到v_min、v_max怎么都看不到数据?感觉上面赋值语句有问题第二个----我想根据上面的v_min和v_max,取出Excel中id号大于等于v_min并且小于等于v_max记录,并插到to_printer表中。
sSql :=
'INSERT INTO to_printer (ID号,用户名称,客户地址,总金额)' +
' SELECT' +
' ID号,用户名称,客户地址,总金额' +
' FROM [excel 8.0;database=' + xlspath + '].[to_printer$] WHERE ID号>=inttostr(v_min) AND inttostr(v_max);
上行中where之后的部分(红字部分)老是通不过,请问,where之后的条件语句怎么写?
选中V_min 或是V_max 按下Ctrl + F7 看是否有值
2.
WHERE ID号>=inttostr(v_min) AND inttostr(v_max)改成
'WHERE ID号>= ' + QuotedStr(inttostr(v_min)) + ' AND ' + QuotedStr(inttostr(v_max))
单引里面加双引
你这们写试一下
adoquery1.close;////加这句 adoquery1.SQL.Clear;
adoquery1.Parameters.Clear;
adoquery1.ParamCheck:=True;
adoquery1.SQL.Add('SELECT id_min,id_max FROM can_shu WHERE id=1'); //can_shu是my_data.mdb里的一张表
adoquery1.open;
v_min:=adoquery1.FieldByName('id_min').Value;//或.AsInteger;
v_max:=adoquery1.fieldbyname('id_max').Value;//或.AsInteger; 第二个
这样试一下
WHERE ID号 between inttostr(v_max) AND inttostr(v_min);