我似乎无意中将VB.NET 2012项目转换为"在线发布"类型.我正在探索IDE并启动了发布向导,但我没有做任何事情就取消了它.该错误似乎与命令行参数的使用有关,我在项目属性中定义了这些参数.
如何从"在线发布"中将项目恢复为"正常模式"...?
每当调试开始时(F5)都会发生错误,如下所示:
当前项目设置指定将使用特定安全权限调试项目.在此模式下,命令行参数不会传递给可执行文件.你想继续调试吗?是/否.
在Excel VBA中,如果变量是Excel.Range,并且删除了它引用的范围,则会丢失其引用.任何访问该变量的尝试都会导致Runtime Error 424: object required.
Dim rng As Range
Set rng = Sheet1Range("A1")
Sheet1.Rows(1).Delete 'Range has been deleted.
Debug.Print rng.Address() 'Any access attempt now raises runtime error 424.
Run Code Online (Sandbox Code Playgroud)
有没有办法测试这种"丢失参考"状态没有错误处理程序..?
测试Nothing,Vartype()和Typename()都没有用,因为变量仍然是一个Range.我完全阅读了对象浏览器中的所有Excel.Application,但一无所获.也许有一些我忽略的东西......?比如史前版本的Excel中那些奇怪的残余函数之一,比如ExecuteExcel4Macro()..?
我在谷歌搜索了这个问题的答案,但没有找到任何帮助.
编辑:
有些人问我为什么要避免错误处理程序.这是我正常的编程理念,原因有两个:
在VB6/VBA项目引用中,Array(),LBound()和UBound()来自......?当我输入代码时,它们不会出现在自动完成列表(ctrl + space)中,它们不会自动完成,并且必须在文本编辑器识别它们之前完全输入它们.只有在键入左括号时,ToolTipText才会弹出命令语法.此外,它们不会出现在对象资源管理器中.
这里可能有一个基本的概念,我不知道.它让我想知道,其他命令/声明/关键字以同样的方式被隐藏了吗?某个地方有名单吗?我用谷歌搜索信息,但没有找到任何东西,可能是因为我不知道我在寻找什么,并使用错误的搜索条件.
我问这些问题是因为我习惯为许多VB6内置函数加上前缀:VBA.Left(),VBA.Len,VBA.Instr()等等.但我无法弄清楚与Array(),LBound()和UBound()一起使用的参考前缀,或者它们对VB6来说是如此基本,以至于它们没有.
我做这个前缀是因为多年前我正在研究一个大型项目,并且我试图在不同的参考库中使用相同名称的函数.我是一个新手,我花了一段时间才弄明白,它造成了巨大的问题,因为这些功能并没有像我认为的那样工作.就在那之后我发现了这个前缀习惯.这种方式更简单,并始终确保使用预期的功能.
我们最近将大型 DB2 数据库迁移到新服务器。在迁移过程中,它被大幅削减,例如 10 年的数据被削减到 3 年等等。但现在我发现我需要旧服务器上的某些数据,直到纳税季节结束。
如何UNION在 DBeaver 中运行查询从两个不同的连接提取数据..?FROM和关键字中的表标识符的正确语法是什么JOIN?
我使用 DBeaver 进行常规 SQL 工作,但无法确定如何UNION跨两个不同的连接进行查询。不过,我也使用 Microsoft Access,并且可以通过两个传递到本机 Microsoft Access 联合查询的传递查询轻松完成此操作。
但是如何在 DBeaver 中做到这一点呢?我不明白如何同时使用两个连接。
例如,这是我的联系:
我需要这样的东西......
SELECT *
FROM ASP7.F_CERTOB.LDHIST
UNION
SELECT *
FROM OLD.VIPDTAB.LDHIST
Run Code Online (Sandbox Code Playgroud)
...但是我收到以下错误,对此我说“别开玩笑!这就是我想要的!”,哈哈...=-)
SQL Error [56023]: [SQL0512] Statement references objects in multiple databases.
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点..?
如何在自己的页面上为每个子或函数编目,索引和/或打印VB6源代码..?如果可能的话,我想使用免费或包含Visual Studio插件这样做,但我并不反对自己写一些东西.我熟悉"Microsoft Office Visual Basic for Applications Extensibility",似乎VB6有一个类似的模块,这可能允许我通过代码模块集合简单地"For Each"并将打印机扔到打印机上时间.它可能需要10-15行代码.
我的首要任务是打印,最好是在自己的页面上使用每个子/功能,但是使用IDE的常规打印功能,所有代码在一个长打印输出中一起运行.接下来,我想在每个VBP中创建每个子,函数,变量和常量的名称的索引/ toc.我们有Visual Studio 6.0企业版,但似乎没有任何东西可以用来做这些事情.
你可能会笑,并问,"为什么VB6 .. ?? LOL !!".这是因为我的任务是升级和更改运行工厂的大型软件系统的VB6源代码.它位于一个与外部世界没有联系的孤立网络上,它已经运行了14年,但现在他们想要开始升级一些东西.该系统由许多VBP文件组成,每个文件都有许多模块和表单.
编辑:我确实尝试谷歌搜索的答案,但事实证明这是不可能的.我得到的只是关于用VB6编写的应用程序打印的编码样本,而不是从IDE打印源代码.
我是 VBA 新手,希望在组合框(用户窗体内)中的选择发生更改时触发一个简单的更改事件。
我尝试了这两种Private Sub myCombo_AfterUpdate()方法,Private Sub myCombo_Change()但在这两种情况下,当我在组合框中选择不同的值时,都不会发生任何情况。
这是组合框的错误方法吗?
我的子程序如下启动,因为我想将下拉列表中当前选定的项目与表中的值进行比较:
Private Sub myCombo_AfterUpdate()
If Me.myCombo.Value = Worksheets(8).Range("A4") Then
'do stuff
End Sub
Run Code Online (Sandbox Code Playgroud)
非常感谢蒂姆对此提供的任何帮助。
如何以编程方式在VB6 Addin中打印源代码..?我在对象浏览器中找不到VBIDE的打印或预览方法.
我在Google上搜索过高低,而且在VBIDE代码模块打印方面缺乏信息.我为PrettyPrint获得了很多热门,但就是这样.缺乏是如此之大,以至于我想知道是否存在一些我完全缺失的基本概念.
我害怕Herb在/sf/answers/2872394801/中提到的O'Reilly书的副本,它没有提到源代码的打印.我能看到的唯一方法是将代码导出到文本文件,并通过与VBIDE无关的常用方法打印它们.
我还在http://www.cpearson.com/excel/vbe.aspx上查看了Chip Pearson的VBE指南,它几乎与VBIDE相同,甚至没有打印代码的线索,除了我提到的想法.保存到文本文件然后打印.
**理想情况下,我想使用现有的VB6文件>打印对话框,并添加一个额外的复选框.我意识到在现有对话框中添加控件是另一个主题,我不反对创建我自己的打印对话框版本.
在VBA自定义类模块(以及扩展VB6?)中,如果有一个私有实例变量定义为同一类中的公共枚举,它是否应该被限定......?如果是这样,如何..?
我经常有相同类型的项目参考。例如,Excel 和 Word 都有一个Range对象。因此,在声明变量时,我总是尽可能具体,例如Excel.Rangeor Word.Range,而不仅仅是Dim R As Range。
但是枚举呢?如何具体说明这些..?我尝试将变量限定为枚举,但总是收到错误。我尝试将枚举定义移动到另一个自定义类,但这没有帮助。我不经常为 VBA 创建类,所以我可能用错了树。
如果我使用Me.关键字限定,我会收到错误:
"Compile error: Expected New or type name."
Run Code Online (Sandbox Code Playgroud)
如果我使用自定义类名,我会收到错误:
"Compile error: User-defined type not defined"
Run Code Online (Sandbox Code Playgroud)
这是一个完整的示例:
'Custom class module.
Option Explicit
Public Enum ImageAspect
ImageAspectHorizontal
ImageAspectVertical
End Enum
' Example 1:
' Qualified to use built-in Excel enumeration. This works.
Private logoAspect1 As Excel.XlOrientation
' Example 2:
' Uses the enum defined in this class. This works, but...
' …Run Code Online (Sandbox Code Playgroud) 我可以与CVErr()一起使用哪个错误号来指示Access VBA函数不会返回任何值?我拉空白。CVErr(5)可以工作,但是我希望有一些不太通用的东西。744(“找不到搜索文字”)接近(-ish),但仍然没有雪茄。
我正在创建一个特殊的查询功能以在访问报告中使用。如果该函数不返回任何值,我希望它返回一个ERROR#值。Chip Pearson对此的讨论是完美的,但是它是针对Excel的,必须对Access进行一些更改。
我已经在FMS上使用各种关键字(例如“零”,“未找到”,“太少”等)搜索了错误列表。列表中有成千上万个错误,因此无需任何帮助就可以将其减少实际阅读整个列表将不胜感激。
例:
Function MyLookup(param1) as Variant
'..............
'...do stuff...
'..............
If SomethingBad = True Then
MyLookup = VBA.CVErr(N) 'What here for N?
Exit Function
Endif
End Function
Run Code Online (Sandbox Code Playgroud) 在 Access VBA 中,将记录集作为快照打开时,是否会使只读选项变得多余?起初这似乎是正确的,因为快照本质上已经是只读的,但似乎总是有一些警告。
例子:
Dim acc as Access.Application
Dim db as DAO.Database
Dim rs as DAO.Recordset
Dim sqltext as String
sqltext = "SELECT * FROM SOMESOURCE"
Set rs = db.OpenRecordset(sqltext, dbOpenSnapshot, dbReadOnly)
'Because the type is dbOpenSnapshot, does dbReadOnly become redundant?
Run Code Online (Sandbox Code Playgroud) 如何在 VBA 2007 中确定对象变量的完全限定类和成员名称?例如,Excel.Range而不仅仅是Range......就像它在代码中出现的那样?
Excel 和 Word 都有一个Range对象,但它们是截然不同的类。在下面的示例中, aRange被传递给函数。该函数如何确定它来自哪个类......?
该示例的结果生成“Microsoft Excel.Range”。虽然很接近,但不一样。但是Parent.Name和类名是两个不同的属性,在其他软件中可能是完全不同的文本字符串,没有共性。
那么......如何才能得到Excel.Range而不是Microsoft Excel.Range..?
'Note: Project has references to both Excel and Word.
Public Sub Demo()
Dim r As Excel.range
Dim fulltype As String
Set r = ActiveCell
fulltype = WhatAmI(r)
Debug.Print fulltype
Select Case fulltype
Case "Excel.Range"
'Do stuff.
Case "Word.Range"
'Do other stuff.
End Select
End Sub
Private Function WhatAmI(ByRef X As Object) As String
Dim typ …Run Code Online (Sandbox Code Playgroud) 我的 SQL Server Management Studio (SSMS) 意外关闭。许多 SQL 文件已打开。当 SSMS 重新启动时,它确实重新打开了一些自动恢复文件,但不是全部文件,尤其是我正在处理的文件,并且可能会丢失几个小时的工作。
丢失的文件可以恢复吗?
这是一个自我回答的操作问题。见下文。
注意:这适用于SSMS,但也可能适用于SSIS(Microsoft SQL Server Integration Services)。