您的 以excel文件作为数据源的例子 的按钮代码中
ts = ts & s.Replace("$","").Trim("'") & "|" 改为:
ts = ts & dlg.FileName.split("\")(dlg.FileName.split("-:special:1:-).length-1) & " 中的表: " & s.Replace("$","").Trim("'") & "|"
后
会发现: 在同一数据源下,选择不同的Excel工作簿,都会提示“xx数据源已经存在”,但是ListBox中显示的是:不同的工作簿名 和 第一次显示的第一个工作簿的表名。 总感觉~ 说不出的味道。
既然提示了,怎样保持原工作簿和表名不变? 也就是怎样判断数据源已经存在呢? 提示之后不执行代码向ListBos写东西了。 上面怎么会乱码呢:
此主题相关图片如下:未命名.jpg
[此贴子已经被作者于2010-1-28 0:01:37编辑过]
你这样修改以后,仅仅是修改了表名称的提示信息而已。数据源还是同一个,当然会提示。
如果要添加不同的数据源,可以用随机生成的数据源名称即可。
用一个数值型的全局变量来动态增加数据源应该可以解决的。
比如动态增加数据源时:
AddConnection("excel" & Vars("i"),sjy)数据引用成功后再对全局变量赋值加1
没测试,理论上应该行的。
我重新做了个例子:
如果要想在列表的同时,显示相应的数据库名称,最好的方法是用TreeView,而不是用ListBox。
用TreeView可以在根节点显示库名称,在下级节点显示该库所包含的表。就象sql server的企业管理器一样,调用起来很方便。
运行效果图如下:
此主题相关图片如下:11.jpg
[此贴子已经被作者于2010-1-27 22:20:47编辑过]
谢谢C版 R版 我做成这样的了, 但是同数据源还是会提示,但是不影响正确执行,可以对数据源重命名来加载同个或不同的数据源。还是R版说的用目录树好看写~
另外,我还很少使用全局变量,不是很熟悉,一般都是用一个标签或文本框来替代,只是多写几行代码了。
此主题相关图片如下:未命名2.jpg
[此贴子已经被作者于2010-1-27 23:21:08编辑过]
佩服你们的钻研精神
我不明白为什么要同时连接几个EXCEL数据源啊!
可能这样子方便,想查阅什么EXCEL文件就查阅什么。
这样用目录树好些,明了。
以下是引用wcs在2010-1-27 23:32:00的发言:
佩服你们的钻研精神
我不明白为什么要同时连接几个EXCEL数据源啊!
可能这样子方便,想查阅什么EXCEL文件就查阅什么。
这样用目录树好些,明了。
就是方便查阅~ 啊!
我就是通过这样拿大家的例子不断摆弄(你说的钻研),使自己玩弄代码水平不断提高的(当然也还属于菜鸟级别的),呵呵,我可是玩狐表之前没有一点点基础的(不会任何语言),连易表(听说很容易上手的)基本都不会 。
[此贴子已经被作者于2010-1-27 23:50:37编辑过]
以下是引用mr725在2010-1-27 23:50:00的发言:
就是方便查阅~ 啊!
我就是通过这样拿大家的例子不断摆弄(你说的钻研),使自己玩弄代码水平不断提高的(当然也还属于菜鸟级别的),呵呵,我可是玩狐表之前没有一点点基础的(不会任何语言),连易表(听说很容易上手的)基本都不会 。
[此贴子已经被作者于2010-1-27 23:50:37编辑过]
精神可嘉.
以下是引用mr725在2010-1-27 23:17:00的发言:谢谢C版 R版 我做成这样的了, 但是同数据源还是会提示,但是不影响正确执行,可以对数据源重命名来加载同个或不同的数据源。还是R版说的用目录树好看写~
另外,我还很少使用全局变量,不是很熟悉,一般都是用一个标签或文本框来替代,只是多写几行代码了。
此主题相关图片如下:未命名2.jpg
[此贴子已经被作者于2010-1-27 23:21:08编辑过]
贴上来看看
呵呵 , 我还没有完成,昨天都是在命令窗口测试的,忘了把最后的代码放到按钮中了(又要重写了),图片中下面两个按钮是空的,上面那个ok的按钮,也只是完成对数据源名称的文本框应用ok了。 再说,你看图片数据源名mm5 本来是同一个工作簿下的表,但选择另一个工作簿时,却把工作簿的名称替换掉了,其他没变?还要增加几个判断, 我晕了啊~ 有空等下次来劲的时候再继续做吧。
思路是这样的: 显示:数据源名称,工作簿名 和 工作表名,就是一楼的代码! 另加个文本框将每次显示的保存,增加数据源时再判断保存的文本框里是否有同名的,处理后再显示到ListBox中。
不过,还是感觉R版的目录树的想法更好~~~