Delphi中读取excel表中数据到DBEDIT中问题求救(10分)

  • 主题发起人 主题发起人 kingson
  • 开始时间 开始时间
K

kingson

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的ado连接方式.
Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=D:/SZJX/MODEL.xls;Mode=Share Deny None;Extended Properties=Excel 8.0;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=true
直接在adoconnect中配置的.
我要实现这样的问题:
当在excel中条件为在dbedit中输入order号时,dbedit2自动填写为excel表中的item字段,如何实现,我写了一下,出错?
procedure TF_edit.DBEdit1Exit(Sender: TObject);
begin
with dm.q_excel do
begin
sql.Clear;
sql.Add('select * from [sheetl$] where order='''+dbedit1.Text+'''');
open;
end;
Dbedit2.Text:=dm.Q_excel.fieldbyname('item').asstring;
end;

end.
这里当执行程序时,老提示where子句有错误,怎么搞呀,大哥们?
 
因办 order是系统的你换个别的就行了吧 order by
 
order是excel中的一个列字段
 
你把哪个列名换成别的试试
 
换了也不行,我的excel表格内容如下
order item desc whs location qty date
M10002 je316 钢管 1 ca0101 500 2008-11-01
M10003 tq214 PVC 1 ca0201 400 2008-10-21

怎么把excel做为数据源,先查询excel表中的内容,然后当查询条件为excle中order等于dbedit1时,在dbedit2中带出excel中item列中的数据,在dbedit3中带出excel中desc列,在dbedit4中带出qty,如何做呀,急!!!!!!!!!!!!
 
下面是一张EXCEL表格
客户代码 客户名称 客户税号 客户地址 客户开户银行账号
000001 abc 11111000 dasgadsgs 3241354325423
000002 dsf 32413454 dasadgdsgf 2314341413143
。。。
下面是一个用SQL语句创建的表
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[客户基本资料表](
[系统编号] [int] IDENTITY(1,1) NOT NULL,
[单位级别代码] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[单位名称] [varchar](255) COLLATE Chinese_PRC_CI_AS NOT NULL,
[单位电话] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[所在省份代码] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[所在城市代码] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[邮政编码] [varchar](6) COLLATE Chinese_PRC_CI_AS NULL,
[通信地址] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[公司网址] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[公司类型代码] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[公司性质代码] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[所在行业代码] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[经营品牌] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[行业地位] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[其它描述] [text] COLLATE Chinese_PRC_CI_AS NULL,
[录入日期] [datetime] NOT NULL,
[录入人员代码] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[公司传真] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[月开票量] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[可能购买的产品] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[最后跟踪时间] [datetime] NULL,
[签约标志] [varchar](2) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_客户基本资料表] PRIMARY KEY CLUSTERED
(
[系统编号] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
SET ANSI_PADDING OFF



CREATE TABLE [dbo].[税控导入资料](
[客户编码] [int] IDENTITY(1,1) NOT NULL,
[客户名称] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[客户地址电话] [varchar](255) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_税控导入资料] PRIMARY KEY CLUSTERED
(
[客户编码] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

请问如何根据上面两个用DELPHI设计一个程序实现下面的要求:
1、根据 excel表上的客户名称,判断一下 客户基本资料表中的单位名称是否存在,如果存在,那么就不做处理
2、如果不存在,那么,再根据客户名称,判断一下 税控导入资料中的 客户名称 是否存在
3、如果存在,则不做处理,如果不存在,那么将数据插入到 税控导入资料表中

我是一个初学者,刚学DELPHI不到一个月,老总就给了这个测试,希望大家能帮个忙,尽量能把步骤说清楚点,万分感谢
 
后退
顶部