SolidWorks宏为VB语言,可以用它查询获得数据库的返回值吗?谢谢

A0-Miss?? 2020-03-12 04:16:08
数据库已经有了,里面也有表格,我这边有个接口输入字段DH,返回值为BM,可以通过VB调用,不用他这个接口实现吗?谢谢
数据库地址:192.168.1.101
数据库类型:orcl
用户名: DZHT
密码:DZHT
数据表: partdic
输入的代号字段:dh (自动获取VB中的代号值)
生成的编码字段:bm
下面是SolidWorks里面的宏文件:
'定义SolidWorks
Dim strmat As String
Dim a() As String
Dim b As Integer
Dim c As String
Dim d As String
Dim e As String
Dim f As String
Dim g() As String
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Dim tempvalue As String
Dim part As Object
Dim Part1 As Object
Dim swApp As SldWorks.SldWorks
Dim swModelDoc As SldWorks.ModelDoc2
Dim swConfig As SldWorks.Configuration
Dim CustPropMgr As SldWorks.CustomPropertyManager
Dim swModel As SldWorks.ModelDoc2
Sub main()
Set swApp = Application.SldWorks
Set swModelDoc = swApp.ActiveDoc
Set part = swApp.ActiveDoc
Set SelMgr = part.SelectionManager
swApp.ActiveDoc.ActiveView.FrameState = 1
Set swModelDoc = swApp.ActiveDoc
Set swConfig = swModelDoc.ConfigurationManager.ActiveConfiguration
Set swModel = swApp.ActiveDoc
Set CustPropMgr = swModel.Extension.CustomPropertyManager(swModel.ConfigurationManager.ActiveConfiguration.Name) ' 配置特定延伸
'设定变量
Set part = swApp.ActiveDoc
Set SelMgr = part.SelectionManager
swApp.ActiveDoc.ActiveView.FrameState = 1
Set swModelDoc = swApp.ActiveDoc
Set swConfig = swModelDoc.ConfigurationManager.ActiveConfiguration
Set swModel = swApp.ActiveDoc
Set CustPropMgr = swModel.Extension.CustomPropertyManager(swModel.ConfigurationManager.ActiveConfiguration.Name) ' 配置特定延伸
'设定变量
c = swApp.ActiveDoc.GetTitle() ' 零件名
b = swApp.ActiveDoc.GetType() '零件类型
a = Split(c, " ") '重点:分隔标识符,这里是一个空格,也可换成其他符号
d = a(0)'(这个是想输入数据库的值也就是dh,想得到返回值bm,填到备注里)
e = a(1)
f = Right(c, 7)
If b = 1 Then
strmat1 = Chr(34) + Trim("SW-Mass" + "@" + "@默认@") + c + ".SLDPRT" + Chr(34) ' Weight
strmat = Chr(34) + Trim("SW-Material" + "@" + "@默认@") + c + ".SLDPRT" + Chr(34) ' Material
w = "/"
Else
strmat = "附图"
strmat1 = Chr(34) + Trim("SW-Mass" + "@" + "@默认@") + c + ".SLDASM" + Chr(34) ' Weight
w = "组件"
End If
If f = ".SLDPRT" Then
g = Split(e, ".")
e = g(0)
End If
If f = ".sldprt" Then
g = Split(e, ".")
e = g(0)
End If

If f = ".SLDASM" Then
g = Split(e, ".")
e = g(0)
End If
If f = ".sldasm" Then
g = Split(e, ".")
e = g(0)
End If

blnretval = part.DeleteCustomInfo2("", "代号")
blnretval = part.DeleteCustomInfo2("", "设计")
blnretval = part.DeleteCustomInfo2("", "名称")
'blnretval = part.DeleteCustomInfo2("", "编码")
blnretval = part.DeleteCustomInfo2("", "材料")
blnretval = part.DeleteCustomInfo2("", "规格")
blnretval = part.DeleteCustomInfo2("", "数量")
blnretval = part.DeleteCustomInfo2("", "Specification")
blnretval = part.DeleteCustomInfo2("", "单重")
blnretval = part.DeleteCustomInfo2("", "质量")
blnretval = part.DeleteCustomInfo2("", "绘图")
blnretval = part.DeleteCustomInfo2("", "批准")
blnretval = part.DeleteCustomInfo2("", "日期")
blnretval = part.DeleteCustomInfo2("", "校核")
blnretval = part.DeleteCustomInfo2("", "替代")
blnretval = part.DeleteCustomInfo2("", "图幅")
blnretval = part.DeleteCustomInfo2("", "版本")
blnretval = part.DeleteCustomInfo2("", "备注")
blnretval = part.DeleteCustomInfo2("", "审核")
blnretval = part.DeleteCustomInfo2("", "Material")
b lnretval = part.DeleteCustomInfo2("", "零件号")
blnretval = part.DeleteCustomInfo2("", "校核")
blnretval = part.DeleteCustomInfo2("", "主管设计")
blnretval = part.DeleteCustomInfo2("", "校对")
blnretval = part.DeleteCustomInfo2("", "Weight")
blnretval = part.DeleteCustomInfo2("", "Description")
blnretval = part.DeleteCustomInfo2("", "标准审查")
blnretval = part.DeleteCustomInfo2("", "工艺审查")
blnretval = part.DeleteCustomInfo2("", "审定")
blnretval = part.DeleteCustomInfo2("", "阶段标记S")
blnretval = part.DeleteCustomInfo2("", "阶段标记A")
blnretval = part.DeleteCustomInfo2("", "阶段标记B")
blnretval = part.DeleteCustomInfo2("", "阶段标记")
blnretval = part.DeleteCustomInfo2("", "共X张")
blnretval = part.DeleteCustomInfo2("", "第X张")

'删除栏
CustPropMgr.Delete ("名称")
CustPropMgr.Delete ("设计")
CustPropMgr.Delete ("绘图")
CustPropMgr.Delete ("材料")
CustPropMgr.Delete ("代号")
CustPropMgr.Delete ("设备名称")
CustPropMgr.Delete ("数量")
CustPropMgr.Delete ("单重")
CustPropMgr.Delete ("规格")
CustPropMgr.Delete ("备注")
CustPropMgr.Delete ("质量")
'新增
CustPropMgr.Add2 "代号/名称", swCustomInfoText, d + e ' 设计
'CustPropMgr.Add2 "绘图", swCustomInfoText, "姓名" ' 设计
'CustPropMgr.Add2 "零件号", swCustomInfoText, "" ' 零件号
'CustPropMgr.Add2 "校对", swCustomInfoText, " " ' 校对
'CustPropMgr.Add2 "审核", swCustomInfoText, " " ' 审核
'custPropMgr.Add2 "批准", swCustomInfoText, " " ' 批准
'CustPropMgr.Add2 "标准化", swCustomInfoText, " " ' 标准化
CustPropMgr.Add2 "代号", swCustomInfoText, d ' 代号
CustPropMgr.Add2 "名称", swCustomInfoText, e ' 名称
CustPropMgr.Add2 "备注", swCustomInfoText, "" ' 备注
CustPropMgr.Add2 "编码", swCustomInfoText, "" ' 编码
CustPropMgr.Add2 "规格", swCustomInfoText, w ' 规格
CustPropMgr.Add2 "变更单号", swCustomInfoText, "" ' 变更单号
'CustPropMgr.Add2 "阶段标记", swCustomInfoText, "" ' 阶段标记
'CustPropMgr.Add2 "阶段标记S", swCustomInfoText, "" '阶段标记S
'CustPropMgr.Add2 "阶段标记A", swCustomInfoText, "" ' 阶段标记A
'CustPropMgr.Add2 "阶段标记B", swCustomInfoText, "" ' 阶段标记B
'CustPropMgr.Add2 "日期", swCustomInfoText, "" ' 日期
'CustPropMgr.Add2 "共X张", swCustomInfoText, "" ' 共X张
'CustPropMgr.Add2 "第X张", swCustomInfoText, "" ' 第X张
'CustPropMgr.Add2 "比例", swCustomInfoText, " " ' 比例
CustPropMgr.Add2 "质量", swCustomInfoText, strmat1 '质量
CustPropMgr.Add2 "单重", swCustomInfoText, strmat1 '单量
CustPropMgr.Add2 "材料", swCustomInfoText, strmat '材料
'加入所需语句


End Sub
...全文
198 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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