小编Pat*_*rez的帖子

数据库设计 - 寻找根本性的变化

我有一个存储工厂信息的关系数据库.有一个plant_id,一个链接到类别表的工厂类别,等等.设计非常好,但我面临的任务非常有趣.数据必须由用户自动填充.

理想情况是用户登录网站并上传其数据集,通常采用纯文本格式(例如.csv或其他Windows文档),并且此数据会自动插入到我的工厂数据库中.

所以我基本上给出了规范; 用户应将其.csv列设置为特定名称,以便脚本可以链接到我的数据库字段.这些领域中有许多涉及植物的通用属性......例如植物高度或植物颜色.此信息可能是使用公制系统或使用其他系统的高度.颜色可能像褐色,实际上与说棕色相同.这些例子有数百个.

我正在尝试自动修复这些不一致性,以便褐色属性链接到实际的棕色.此链接很重要,因为使用该网站的人会想要找到给定颜色的植物,现在我必须通过并手动关联所有这些不同的属性.

您如何解决此问题并避免人工干预?

mysql database-design

6
推荐指数
1
解决办法
132
查看次数

SQL Server错误处理模式

我不是SQl Server的专家.这是处理SQl SERVER中的一批SELECT,INSERT ...中的错误的有效模式吗?(我用v.2008)

BEGIN TRANSACTION
    BEGIN TRY
       -- statement 1
       -- statement 2
       -- statement 3
       COMMIT TRANSACTION
    END TRY

    BEGIN CATCH
       ROLLBACK TRANSACTION
    END CATCH
Run Code Online (Sandbox Code Playgroud)

谢谢

sql sql-server error-handling

5
推荐指数
1
解决办法
1791
查看次数

如何使用 VBA 在 Excel 的下拉列表中选择第一个 iterm

我使用数据验证来创建一些下拉列表。任何人都知道如何使用 VBA 在下拉列表中选择第一个 iterm?

我尝试了“拆分”功能:

cell.Value = Split(cell.Validation.Formula1, ",")(0)
Run Code Online (Sandbox Code Playgroud)

但它效果不佳,只有当我在“数据验证”窗口的源中输入“option1,option2”时,它才会起作用。如果我将源引用到一系列选项,那么它将返回错误。

我想应该有一些更聪明的方法。

谢谢!

excel vba

5
推荐指数
1
解决办法
1万
查看次数

使用WScript.Shell.Run的Excel VBA错误

在最近从Excel 2010升级到Excel 2013之后,我将自定义加载项(.xlam)移动到新的Application.LibraryPath目录(C:\ Program Files\Microsoft Office 15\root\office15\Library\BTRTools).有一些代码启动可执行(exe)文件(位于加载项的子目录中).但是,自升级/移动以来,我没有收到错误:

PrettyPrintXml.exe - Application Error

The application was unable to start correctly (0xc000007b). Click OK to close the application.

我显然很相信它是文件权限.我已经明确添加了自己的权限,拥有\ Library文件夹(以及所有潜艇)的完全权限.请注意,我认为即使使用Excel 2010(C:\ Program Files(x86)\ Microsoft Office\Office14\Library中的文件夹)也必须这样做才能使工作正常.

但是,经过这一切,我仍然卡住了,无法启动exe文件.关于如何使这项工作的任何想法/建议?

代码非常标准:

Public Sub RunShellExecute(sFile As String, Optional params As String = "", Optional wait As Boolean = False)

Dim wsh As Object: Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = wait
Dim windowStyle As Integer: windowStyle = 1
Dim exe As String: exe = IIf(Left(sFile, …
Run Code Online (Sandbox Code Playgroud)

excel vba wsh excel-vba

5
推荐指数
1
解决办法
2万
查看次数

插入 Access 从 Access VBA 中的 Excel 中选择

我有一个 Access 2010 数据库,其中所有表都链接到 SQL Server 2014 表。我有一个 Excel 2010 (.xlsx) 文件(尽管它以 .csv 开头,我可以保留这种方式),我需要通过 VBA 代码将其导入到 SQL Server 表中。我知道有导入工具可以执行此操作,但是,我每月有 20 多个 XLS 文件需要导入,并且更希望有一种自动化方法来执行此操作。

我的所有 VBA 代码都驻留在 Access 数据库中,并且我能够找到的所有 VBA 代码示例都是用于从 Excel推送数据(即代码位于 Excel 中)而不是提取数据(即代码在Access中) 。

我更愿意用一个来完成INSERT INTO AccessTable SELECT FROM ExcelRange查询来完成此操作,而不是逐行读取 Excel,并且我需要在插入 Excel 数据之前对其进行一些转换。

到目前为止我所拥有的:

Private Sub TransferData(ByVal Company As String, ByVal Address As String, ByVal XLName As String)

Dim Con As ADODB.Connection
Dim SQLString As String

  SQLString = "INSERT INTO SatSurvey " & _ …
Run Code Online (Sandbox Code Playgroud)

ms-access vba ms-access-2010 excel-2010

5
推荐指数
1
解决办法
7658
查看次数

如何在VBA中测试Excel工作簿中是否存在VBA?

我正在编写一个报告工具来记录各种"合规性标准"的Excel文件,包括wkb.VBProject.Protection报告VBA是否被锁定.

但是,如何找到工作簿是否有任何项目?

如果我计算

wkb.VBProject.VBComponents.Count - wkb.Worksheets.Count - 1 '(for the workbook)
Run Code Online (Sandbox Code Playgroud)

这将给我模块+类模块+表单的数量,但我仍然可以在工作表后面有一些代码.

在Excel中有没有办法 - 比如Access frm.HasModule - 找出工作簿中是否有任何VBA代码?

excel vba excel-vba

4
推荐指数
2
解决办法
4984
查看次数

带有Null的Oracle SELECT XMLELEMENT

使用Oracle 11,当我这样做

  SELECT XMLELEMENT("dummy", NULL) as xml_1 
    FROM dual
Run Code Online (Sandbox Code Playgroud)

输出是 <dummy></dummy>

我怎么强行回来 <dummy />

xml oracle oracle11g

4
推荐指数
1
解决办法
3429
查看次数

访问:列出查询依赖项

在这个答案的帮助下,我创建了一个报告来列出当前数据库中的所有查询,及其输入表/查询及其输出(用于操作查询)。
我对此非常满意,直到我注意到结果中缺少一些查询。
我有点不明白为什么。
有什么线索吗?

SELECT MSysObjects.Name AS queryName, 
  Mid("SelectMakTblAppendUpdateDeleteXtab  777777PassThUnion ",([msysqueries]![Flag]-1)*6+1,6) AS queryType, 
  src.Name1 AS [Input], 
  MSysQueries.Name1 AS Target, 
  MSysQueries.Attribute
FROM (MSysQueries INNER JOIN MSysObjects ON MSysQueries.ObjectId = MSysObjects.Id) 
LEFT JOIN (SELECT * FROM MSysQueries WHERE Attribute = 5)  AS src ON MSysQueries.ObjectId = src.ObjectId
WHERE (((MSysObjects.Name)>"~z") AND (MSysQueries.Attribute=1))
ORDER BY MSysObjects.Name, src.Name1
Run Code Online (Sandbox Code Playgroud)

编辑:发现违背所有逻辑,INNER JOIN MSysObjects ON MSysQueries.ObjectId = MSysObjects.Id有时不会返回它应该返回的每一行。
我检查了 MSysQueries 和 MSysObjects 并确保两侧都有相同的对象 id -2147483618,我确保 MSysQueries 有一行用于该 ObjectId,其中 Attribute=1,但是,在连接表时,该特定行的 attribute=1没有出现。很奇怪。我尝试使用内部联接,用条件替换 JOIN,在过程中添加 Val 或 CLng,没办法。我在这里迷路了。

编辑2:找到了一种通过使用正确“连接”两个表的方法 …

ms-access

4
推荐指数
1
解决办法
3515
查看次数

VBA Access 检查父表单是否存在

在 MS Access 中,我正在从另一个对话框窗体打开一个对话框窗体。

于是formA,打开formB。但是他们的用户可能会formB作为独立打开,我想避免在这种情况下出现错误。

我考虑过检查formB.

但是当我这样做时,我仍然收到错误 2452:您输入的表达式对 Parent 属性无效。

我试过:

If Not IsError(Me.Parent) Then
    Me.Parent.cboTraining.Requery
End If
Run Code Online (Sandbox Code Playgroud)

If Not IsNull(Me.Parent) Then
    Me.Parent.cboTraining.Requery
End If
Run Code Online (Sandbox Code Playgroud)

ms-access ms-access-2013

4
推荐指数
1
解决办法
5666
查看次数

类中的VBA调用类属性

在VBA类模块(例如在Excel或Access中)中,我编写了一个SomeFunction()返回值的函数。
如果我在课堂上把这个从另一个函数/分,我应该说是:
A)是这样的:myVar = SomeFunction
B)是这样的:myVar = Me.SomeFunction

我认为两者都可以,所以除了写作风格和阐明SomeFunction是类的一部分之外,这有什么区别吗?

vba

4
推荐指数
1
解决办法
133
查看次数