Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何批量建立超链接

yufq  发表于:2012-12-15 09:33:39  
复制

现有一个数据表,有一列为运单号,想在此表中点击运单号时,打开另一文件夹下存放的对应运单号图片(图片格式为PNG).由于运单号数量较多,挨个添加超链接很麻烦,有没有办法批量添加或通过VB编程实现?望高手指点,谢谢!

 

Top
金宇 发表于:2012-12-15 16:13:12

如果运单号跟运单号图片名称完全一致,并且所有运单号图片都在同一个文件夹中,那么完全可以,假设图片保存在“C:\运单图片” 路径下

那么可以通过双击窗体上运单号文本控件打开图片,双击事件中的代码 ShellExe “C:\运单图片\” & Me.运单号 & ".png"

以下代码放在新建的模块中


'API函数声明
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

'ShellExecute函数二次封装,以简化使用
'输入参数File可以是文件名,网页地址或命令行
Public Function ShellExe(File As String)
    ShellExecute hWndAccessApp, "Open", File, 0, 0, 1
End Function



凌晨 发表于:2012-12-23 23:22:47

思路一:将该数据表导出成excel文档,在excel文档中用相应的公式或VBA程序生成与之对应的超级链接地址,再导入ACCESS成数据表,不过此时生成的含有超级链接字段存储的还是文字,可以打开导入的表,将该字段类型改为超级链接,这样就实现了,直接用程序生成超级链接字段系统会总是提醒该超级链接地址为只读的。

思路二:假设图片放在“C:\运单图片”下,新建一个窗体,在该窗体上新建一个文本框,假设该文本框的标签名称为lable1,文本框名称为Dd,设置该文本框的控件来源为该订单字段,在该文本框的click事件中输入以下代码:

dim A as string

A=me.dd.value

me.lable1.Me.Label1.HyperlinkAddress = "C:\运单图片" & A & “.png”
Label1.Hyperlink.Follow

 这样点击文本框就直接转导需要的超级链接了。

上述程序中可以随便找一个能用的标签,不一定就是要找文本框的。如当你将窗体的默认视图设置为数据表时,可能就看不到lable1了



总记录:2篇  页次:1/1 9 1 :