社区
VB基础类
帖子详情
VB的DDE问题,急等。
zzgcxy
2004-04-20 06:30:46
怎样运用vb 进行dde数据交换!
那位有vb的dde的例子!
...全文
154
3
打赏
收藏
VB的DDE问题,急等。
怎样运用vb 进行dde数据交换! 那位有vb的dde的例子!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ryuginka
2004-04-20
打赏
举报
回复
Private Sub Form_Click ()
Dim CurRow As String
Static Row ' 工作单的行数.
Row = Row + 1 ' 增加行.
If Row = 1 Then ' 只第一次.
' 确保连接不是活动的.
Text1.LinkMode = 0
' 设置应用程序的名字和题目名.
Text1.LinkTopic = "Excel|Sheet1"
Text1.LinkItem = "R1C1" ' 设置 LinkItem.
Text1.LinkMode = 1 ' 设置 LinkMode 为自动.
Else
' 在数据项目中更新行.
CurRow = "R" & Row & "C1"
Text1.LinkItem = CurRow ' 设置 LinkItem.
End If
End Sub
ryuginka
2004-04-20
打赏
举报
回复
DDE 常数
linkerr(LinkError 事件)
常数 值 描述
vbWrongFormat 1 另外一个应用程序以错误的数据格式请求数据
vbDDESourceClosed 6 接受端应用程序试图在发送端关闭之后继续
vbTooManyLinks 7 发送端所有连接均在使用
vbDataTransferFailed 8 更新接收端的数据时失败
LinkMode 属性(窗体和控件)
常数 值 描述
vbLinkNone 0 无
vbLinkSource 1 发送端(仅对窗体)
vbLinkAutomatic 1 自动(仅对控件)
vbLinkManual 2 手动(仅对控件)
vbLinkNotify 3 通知(仅对控件)
LinkMode 属性(仅为了与 Visual Basic version 1.0 反向兼容; 要使用新的常数来替代)
常数 值 描述
vbHot 1 热链路(仅对控件)
vbServer 1 服务端(仅对窗体)
vbCold 2 冷链路(仅对控件)
LinkOpen 事件
此事件在一个 DDE 对话正在启动时发生。
语法
Private Sub Form_LinkOpen(cancel As Integer)
Private Sub MDIForm_LinkOpen(cancel As Integer)
Private Sub object_LinkOpen([index As Integer,]cancel As Integer)
LinkOpen 事件语法包括下列部分:
部分 描述
object 一个对象表达式,其值是“应用于”列表中的一个对象。
cancel 是一个整数,它用来确定该 DDE 对话是否建立。让 cancel 设置为 0(缺省值)可建立该对话。将 cancel 设置为任何非零值则拒绝对话。
index 一个整数,它用来唯一地标识一个在控件数组中的控件。
说明
对窗体来说,此事件在一个接收端应用程序正在与该窗体建立一个 DDE 对话时发生。对控件来说,此事件在一个控件正在与一个源应用程序建立一个 DDE 对话时发生。
LinkTopic 属性
对于接收端控件-返回或设置发送端应用程序和主题(使用于该应用程序中的基本数据的分组)。为了指定完整的数据链,应当与 LinkItem 属性一起使用 LinkTopic。
对于发送端窗体-返回或设置在 DDE 对话中发送端窗体需响应的主题。
语法
object.LinkTopic [= value]
LinkTopic 属性的语法包含下面部分:
部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
value 一个指定 DDE 语法元素的字符串表达式。
说明
LinkTopic 属性由字符串组成,该字符串用来提供为建立接收端链或者发送端链必须的部分信息。该字符串依赖于正在使用的是接收端控件还是发送端窗体。每个字符串对应于标准 DDE 语法的一个或多个元素,它包括 application、topic和 item。
注意 当 DDE 链接的标准定义包括 application、topic 和 item 元素时,对于接收端链接到发送端应用程序来说,应用程序内实际使用的语法可作少许的变更。例如,在 Microsoft Excel 中,可使用下面的语法:
application|topic!item
而在 Microsoft Word for Windows 中,使用的是:
application topic item
(不要使用管道符 [|] 或惊叹号 [!]。)
在 Visual Basic 应用程序中,使用的是:
application|topic
惊叹号对于 topic 是隐含的。
接收端控件 为了给接收端控件设置 LinkTopic,要使用具有 application|topic 语法的字符串,如下:
application 是请求数据的应用程序的名字,通常是不带扩展名的可执行文件名-例如,Excel(对应 Microsoft Excel)。
管道字符(|,或字符代码 124)将应用程序与主题分开。
topic 是用在发送端应用程序中的基本数据的分组-例如,Microsoft Excel 中的工作表。
另外,仅就接收端控件而言,为了指定链接的 item 元素必须设置相关的 LinkItem 属性。一个单元引用,比如 R1C1,相当于 Microsoft Excel 工作表中的一个项。
发送端
窗体 为了给窗体设置 LinkTopic,要将 value 设置为一个适当的窗体标识符。当与该窗体建立 DDE 链接时,接收端应用程序将该字符串用作 topic 参数。虽然该字符串完全是为了发送端窗体在 Visual Basic 中设置 LinkTopic 的所需,但接收端应用程序也需要指定:
接收端应用程序使用的 application 元素,它或者是没有 .vbp 扩展名的 Visual Basic 工程文件名(如果正在 Visual Basic 开发环境中运行应用程序)或者是没有 .exe 扩展名的 Visual Basic 应用程序文件名(如果正以独立的可执行文件的形式运行应用程序)。App 对象的 EXEName 属性在 Visual Basic 代码中提供该字符串,除非文件名没有改变。(EXEName 总是返回磁盘上应用程序的实际文件名;DDE 总是使用在“工程属性”对话框中指定的原始的名字。)
接收端应用程序使用的 item 元素,它与发送端窗体上的为 Label、PictureBox 或 TextBox 控件的 Name 属性设置值对应。
下面的语法是一个例子,它是从 Microsoft Excel 到 Visual Basic 应用程序的一个有效引用:
=VizBasicApplication|FormN!TextBox1
在 Microsoft Excel 公式条中能够输入对接收端单元的该引用。
为了激活用 LinkTopic 设置的数据链接,为了指定想要的链接的类型应将 LinkMode 属性设置为适当的非零数值。一般来说,在设置 LinkTopic 之后应设置 LinkMode。对于接收端控件,LinkTopic 的改变将中断现存的链接并终止 DDE 对话。对于发送端窗体,LinkTopic 的改变将中断使用那个主题的所有接收端链接。由于这些原因,在改变 LinkTopic 之前总是先把 LinkMode 属性设置为 0。在接收端控件 LinkTopic 改变之后,必须再将 LinkMode 设置为1(自动),2(手动),或 3(通知)以便用新的主题建立一个对话。
注意 在设计时在“编辑”菜单上用“粘贴链接”命令设置一个永久性的数据链接,也会设置 LinkMode、LinkTopic 和 LinkItem 属性。这将创建一个与窗体一起保存的链接。每次加载窗体时,Visual Basic 就尝试重建该对话。
ryuginka
2004-04-20
打赏
举报
回复
MSDN里有详细说明啊,你去查查看吧
VB
程序大揭秘(转载)用
VB
的不得不看的好东西!
http://cnprogram.myrice.com/article/
vb
/
vb
396.html 程联盟--技术文章
VB
程序大揭秘 1.Visual Basic程序概况 我用W32Dasm(Ver 8.93)解开一个比较复杂的
VB
程序,其中用到了许多API 函数比如GetPrivateProfileString、OSfCreateShellLink、SHBrowseF
VB
程序大揭秘
VB
程序大揭秘(转载)用
VB
的不得不看的好东西! http://cnprogram.myrice.com/article/
vb
/
vb
396.html 程联盟--技术文章
VB
程序大揭秘 1.Visual Basic程序概况 我用W32Dasm(Ver 8.93)解开一个比较复杂的
VB
程序,其中用到了许多API 函数比如GetPrivateProfileString、OS
vb
/
vb
.net开发精粹(6)
C2.exe不能执行是如何回事? 在窗体上点击任何一点拖动鼠标实现窗体的移动 在程序中违反唯一约束条件的写入命令,如何做令程序不自动退出 在程序中违反唯一约束条件的写入命令,如何做令程序不自动退出 对象打开时不允许操作 对象打开时不允许操作 C2.exe不能执行
理一理OLE到COM,再到ActiveX,再到.NET
COM、OLE、ActiveX的的确确是一路货色!!!虽然说的有些武断,但我只是将人们对COM、OLE、ActiveX最广泛的理解表达出来,三者之间还是很大区别的,具体渊源后面讲。 一、组件(Component)和对象(Object)之间的区别。 网上找的:组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象 (Rules Object)。组件看起来像对象,但不符...
【分享】 [教学]破解完全入门篇
【分享】 [教学]破解完全入门篇 3PtVw f q85y)_c? #r."#)pD 第一章--前言 /.$hZ$ q 好多哥们儿说看教程跟老大的书都看不太明白,所以,我尽量把话说到最容易理解的份上,本文写给那些刚入门和尚未入门的朋友们... !9N#PHf$p 目录 f$E4jD_au no.1------------------前言(说明一下) ;, \lZ no.2------...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章