怎样快速定位并调用EXCEL某工作表中的小表

spring_sw 2011-11-02 12:16:05
十豆三大侠并各位高手:
  想请教一个困扰已久的问题:
  
有一个几千条记录的dbf数据表,里面每一条记录的某一字段(价格)的详细构成情况,都在一个excel文件的3个工作表中的某个位置以小表格的形式有详细的细目构成列表明细,我想在查询某一dbf记录时实现自动调用这个工作表中的相应小表, 。如果把每个小表以手动的方式截取放到MEMO字段,显然工作量太大,不知有没有好的方法?另外,因为这个excel表很大,打开很慢,调用时有没有快捷一点的方法(这个excel表工作表中表里有表,似乎很难转成DBF表格)?先在此谢过!
...全文
692 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
nxwjq 2021-07-27
  • 打赏
  • 举报
回复

用艾敦制表神器插件可以实现
img

十豆三 2011-11-07
  • 打赏
  • 举报
回复
spring_sw 2011-11-07
  • 打赏
  • 举报
回复
谢谢十豆三老师,终于下载到了。

问了这么多问题,按理应该结帖了,但问题好像更多了,看了许多论坛上相关文章,最终感到许多似乎没有明确的结果:比如:
1、编译后一闪而过的问题(调整showindow、加read events等问题依旧),似乎没人点出核心的关键原因.
2、编译中出现的apphook.vcx正在使用的错误提示,论坛上有很多“解决”方法,但试了一下,好像没一个 有用的。
3、编译后原目录内的文件不能双击打开了。
4、还有我在这21楼的程序报错问题(if cd1=m1提示找不到变量)

 天啊!10多年的vfp经历(虽然中间停顿了很长时间),我从没这么痛苦过。
十豆三 2011-11-07
  • 打赏
  • 举报
回复
我上传到这里了:
汉化的vfp9.0帮助文件
http://download.csdn.net/detail/apple_8180/3765747
十豆三 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 spring_sw 的回复:]
引用 28 楼 apple_8180 的回复:
VFP9.0汉化帮助文件下载地址:
http://www.nbdown.net/file/2353.html
http://www.mzvfp.com/bbs/dispbbs.asp?boardid=2&Id=86826

谢谢热心提供,但没法下载,1th链接我没该站金币,2th链接我还没开通支付宝。
[/Quote]
址址2不需要付钱,是论坛金币。
spring_sw 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 apple_8180 的回复:]
VFP9.0汉化帮助文件下载地址:
http://www.nbdown.net/file/2353.html
http://www.mzvfp.com/bbs/dispbbs.asp?boardid=2&Id=86826
[/Quote]


谢谢热心提供,但没法下载,1th链接我没该站金币,2th链接我还没开通支付宝。
spring_sw 2011-11-06
  • 打赏
  • 举报
回复
求救:为什么上述程序中 if cd1=m1  语句报“找不到变量m1” ?。

另谁可提供VFP6.0帮助文件,发邮件或离线文件到 qq:459629910
spring_sw 2011-11-06
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 apple_8180 的回复:]
你安装完 vfp ,就有帮助文件。

换一个变量名称试试。
[/Quote]

VFP6.0 安装了多次,帮助文件一直灰色。我的安装盘上没有此文件,网上下载了几回,都没用。

m1出错的问题,也试过更换变量,可都没用。程序在有时真的莫名其妙。
十豆三 2011-11-06
  • 打赏
  • 举报
回复
你安装完 vfp ,就有帮助文件。

换一个变量名称试试。
spring_sw 2011-11-04
  • 打赏
  • 举报
回复

bitxor(),没明白你说的什么意思。

补充:zm1=bitxor(asc(subs(allt(a2),i,1)),9) 最后的9不能改大于1位数的原因是不是异或比较时bitxor()中的两个数后者不能超出前者的二进制位数?
spring_sw 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 apple_8180 的回复:]
1、哪句报错?
2、bitxor(),没明白你说的什么意思。
[/Quote]

1、if cd1=m1  语句报错。
2、窗口调试时,zm1=bitxor(asc(subs(allt(a2),i,1)),9) 最后的9不能改大于1位的,否则下一句cd1=cd1+chr(zm1)报错。
十豆三 2011-11-04
  • 打赏
  • 举报
回复
1、哪句报错?
2、bitxor(),没明白你说的什么意思。
spring_sw 2011-11-04
  • 打赏
  • 举报
回复
前辈:下面的程序总提醒我找不到变量m1,可调试窗已显示m1的具体值了,不知为什么?另其中的zm1=bitxor(asc(subs(allt(a2),i,1)),9) 最后一位9不能是大于2位数的,是不是bitxor比对时不能超出前面的二进制位数?



IF ( .NOT. empty(thisform.combo1.value)) .and. ( .NOT. empty(thisform.text1.value))
* clea all
use mi
a1=allt(thisform.combo1.value)
a2=allt(thisform.text1.value)

n=1
* m1=""
DO WHIL n<=3
loca for allt(yh)==a1

IF .not. eof()
m1=allt(code)
cd1=""

for i=1 to len(allt(a2))
zm1=bitxor(asc(subs(allt(a2),i,1)),9)
cd1=cd1+chr(zm1)
endf

if cd1=m1 
jc=1
exit
endi

if cd1#m1 .and. n<3
 k=3-n 
messagebox("密码错误,你还有 "+k+" 次机会!",60,"密码错误提示")
n=n+1

else
jc=0
exit
endi

ELSE
jc=2
exit
ENDI

ENDD

do case
case jc=0
messagebox("非授权用户,你无权使用本系统!",60,"")
clear events
release thisform
quit

case jc=1
release thisform
do form main

case jc=2
messagebox("用户名错误,请检查后重新输入!",60,"提示")
retu
endc

ENDI
spring_sw 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 apple_8180 的回复:]
引用 17 楼 spring_sw 的回复:
不用表单中的 Grid 来显示主要是因为一是grid显示的表太小,另一方面对grid不是很熟练,感觉代码编写太复杂,不如brow不得快。
不过您的建议很好,可解决触发问题,只是在grid的显示栏中点击某行时让其触发的代码应写在哪里?

写到 AfterRowColChang 事件中
[/Quote]

非常谢谢!原来grid还可以这样。
spring_sw 2011-11-04
  • 打赏
  • 举报
回复
非常感谢,原来grid还可以这样。
spring_sw 2011-11-03
  • 打赏
  • 举报
回复
不用表单中的 Grid 来显示主要是因为一是grid显示的表太小,另一方面对grid不是很熟练,感觉代码编写太复杂,不如brow不得快。
不过您的建议很好,可解决触发问题,只是在grid的显示栏中点击某行时让其触发的代码应写在哪里?
十豆三 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 spring_sw 的回复:]
碰到一个细节问题,我是以 brow ...nomodify 来显示查到的dbf记录的,要浏览这个记录的详细构成,需要查找excel文件“价构成”中的内容,但brow 生成的不是表单,怎么触发这个动作呢? 最好能在双击dbf 相应记录时实现对另一表的查询。
[/Quote]为何不用表单,并在表单中用 Grid 显示你的 dbf 内容,对 Grid 写相应代码。
spring_sw 2011-11-03
  • 打赏
  • 举报
回复


碰到一个细节问题,我是以 brow ...nomodify 来显示查到的dbf记录的,要浏览这个记录的详细构成,需要查找excel文件“价构成”中的内容,但brow 生成的不是表单,怎么触发这个动作呢? 最好能在双击dbf 相应记录时实现对另一表的查询。
spring_sw 2011-11-03
  • 打赏
  • 举报
回复
谢谢前辈指点,我按此方法试试,看看是不是笨到不能授教了。
十豆三 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 spring_sw 的回复:]
回复十豆三前辈:关于用录制宏来解决的方法,可否详细些,因为我的功力很低,惭愧!
[/Quote]如何在 Excel 中如何录制宏:
打开你的 Excel,“工具” 菜单,“宏” 子菜单,选择 “录制新宏”,“确定”,
手工操作你要完成的工作,操作完了,点 “停止录制”。
再打开,“工具” 菜单,“宏” 子菜单,选择 “宏”,选择你的录制宏名称,点击“编辑”,就能看到你刚才手工操作的 VBA代码 了,有了这段代码,就可以参照写程序了。
加载更多回复(13)

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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