这似乎是一个常见的问题,但是大多数解决方案都是指连接多个SQL命令,我相信无法使用ADO/VBA(我很高兴在这方面显示错误).
我当前插入我的新记录,然后运行一个选择查询使用(我希望)足够的字段,以保证只返回新插入的记录.我的数据库很少被一个人一次访问(查询之间发生另一次插入的风险可以忽略不计),并且由于表的结构,识别新记录通常很容易.
我现在正在尝试更新一个没有多少唯一性范围的表,而不是人工主键.这意味着存在新记录可能不是唯一的风险,并且我不愿意添加字段以强制唯一性.
在这种情况下,将记录插入Access表然后从Excel查询新主键的最佳方法是什么?
谢谢你的回复.我试图开始@@IDENTITY工作,但这总是使用下面的代码返回0.
Private Sub getIdentityTest()
Dim myRecordset As New ADODB.Recordset
Dim SQL As String, SQL2 As String
SQL = "INSERT INTO tblTasks (discipline,task,owner,unit,minutes) VALUES (""testDisc3-3"",""testTask"",""testOwner"",""testUnit"",1);"
SQL2 = "SELECT @@identity AS NewID FROM tblTasks;"
If databaseConnection Is Nothing Then
createDBConnection
End If
With databaseConnection
.Open dbConnectionString
.Execute (SQL)
.Close
End With
myRecordset.Open SQL2, dbConnectionString, adOpenStatic, adLockReadOnly
Debug.Print myRecordset.Fields("NewID")
myRecordset.Close
Set myRecordset = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
有什么突出的责任吗?
但是,考虑到Renaud(下图)提供的警告,使用@@IDENTITY任何其他方法的风险几乎与使用其他任何方法一样多,因此我SELECT MAX现在暂时使用.为了将来参考,虽然我有兴趣看看我上面的尝试有什么问题.
在开发类似ERP的软件或任何其他复杂的业务系统时,您会采用哪些资源来获得最佳实践?
我是开发人员,不是会计师,不是购买者,不是经理.
我在工程(非软件相关)方面拥有项目管理经验,我在设计,采购,库存管理,销售,制造,质量控制,售后服务等业务流程方面拥有相当丰富的经验.
我的问题是,在开发商业软件时,你总是最终面对缺乏专业知识的领域,我相信对流程的理解以及其他人如何解决类似问题对于开发合格软件至关重要.
那么,是否有任何关于人们如何在ERP系统中解决和实施业务规则和流程的最佳实践或实践经验的在线资源?
我需要在过滤我想要包含的文件列表后创建一个Zip存档.我希望该模块能够在Windows和Linux中运行.
由于我需要过滤文件列表,我真的不想使用外部程序.我不想引入外部依赖项,所以我可以将脚本编译成Windows上的单个可执行文件(使用ActiveState PDK).
我已经尝试过了什么
到目前为止,我已经在CPAN上使用了Archive :: Zip,但它在Windows机器上有一个使用非ASCII文件名的主要错误:文件名在存档中被破坏,因为它们没有被转换为unicode.
有一个错误报告,但它已经超过10个月没有更新,在模块文档中,开发人员是无益的("修复你的计算机或摆脱Windows"类型).
更新:
感谢brian和Alan Haggai Alavi的澄清,似乎已经有足够的爱Archive::Zip来尽快获得这些错误,并最终在Windows中拥有一个功能齐全的zip模块.
在VBA编程中,是否可以隐藏Slider Bar的ToolTipText?
下图显示了Microsoft Access数据库中表单上的滑块栏.我想在红色圆圈中隐藏ToolTipText.
我想这样做的原因是因为Slider Bar不能显示十进制值(例如:0,1),所以我想在缩放到十进制值后在滑块旁边的框中显示这些值.我知道如何做到这一点,但不知道如何隐藏仅显示整数值的Slider的ToolTipText.

我使用ServiceStack(版本3.9.44.0)作为Windows服务(所以我没有使用IIS),我既可以将其作为API使用,也可以将其用作服务网页.
但是,当客户端支持压缩时,我无法确定应该如何启用压缩.
我想如果客户端的请求包含Accept-Encoding:gzip,deflate头部,ServiceStack将透明地压缩数据,但我没有Content-Encoding:gzip在返回的响应中看到任何相应的.
所以我有几个相关的问题:
在使用ServiceStack作为独立服务(没有IIS)的上下文中,如何在浏览器接受响应时为响应启用压缩.
在C#客户端的上下文中,我如何确保压缩客户端/服务器之间的通信.
如果我遗失了什么,欢迎任何帮助.
谢谢.
可以在Interrop 工具包的帮助下创建可通过 COM 在 VB6/MS Access 表单上使用的 .Net UserControls ,或者作为简单的ActiveX。
除了一个主要的问题:调整大小之外,这种方法效果很好。
您无法在运行时调整窗体上的控件的大小。
将控件锚定到窗体的相对两侧,使其在每次调整窗体大小时都会增大,即使缩小窗体也是如此...
似乎没有任何方法可以抑制这种行为:
显然,一种解决方案可能是将.Net Usercontrol 包装在 VB6 usercontrol 中。不幸的是,除了必须使用另一个包装器和更多临时代码之外,VB6 IDE 不再可用......
有什么办法可以解决这个问题吗?
我目前正在制作一个全天候运行的应用程序,并不断从OPC服务器收集信息.
我现在需要做的是将此信息发送到数据库(.accdb-file).这需要非常非常快速地发生.我每毫秒从服务器获取一个新值,我需要以相同的速度将该值发送到数据库.最后我每天00:00将数据库压缩为.zip文件.
我一直在搜索网络,就像一个疯子,但我似乎无法找到一个"最新"的教程.到目前为止,我发现的每一个都使用" Microsoft.Jet.OLEDB.4.0 "作为提供者,但它在我的Windows 7 PC上并不存在.
我已经做了一个小应用程序来测试连接,我将附上我现在的代码,以便给你一个我到目前为止所尝试的一些提示,但这似乎都没有用.
private void button1_Click(object sender, EventArgs e)
{
System.Reflection.Assembly oAssembly = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream oStream = oAssembly.GetManifestResourceStream("RSLogixDB.accdb");
System.IO.FileStream fileStream = new System.IO.FileStream("C:\\Users\\sezettersth\\Documents\\RSLogixDB.accdb", System.IO.FileMode.Create);
byte[] abyt = new byte[oStream.Length];
oStream.Read(abyt, 0, (int)oStream.Length);
fileStream.Write(abyt, 0, (int)oStream.Length);
fileStream.Close();
if (fileStream != null)
{
fileStream.Close();
fileStream = null;
}
if (oStream != null)
{
oStream = null;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试的第一种方法,这里我使用了一个用于创建和写入文件的自制类.它不适用于.accdb文件,不幸的是.(第一行的评论包括我尝试过的提供商.
private void button1_Click(object sender, EventArgs e)
{
//sFileDia.ShowDialog();
//Provider=Microsoft.ACE.OLEDB.12.0
//Povider=.NET Framework Data Provider for OLE DB …Run Code Online (Sandbox Code Playgroud) 我可以使用哪些API或工具来查询系统的功能,并选择最合适的用于将PC置于睡眠,休眠或关机模式?
谢谢你的任何指示.
我使用ServiceStack(v3.9.44.0)作为Windows服务(目标是.Net4.5),我使用Razor让ServiceStack生成并提供HTML.
事情很好,但有一个奇怪的问题:看起来视图.cshtml中硬编码的unicode字符串没有正确呈现.
这就是我的意思:

项目视图的结构是规范的:

随着_Layout.cshtml:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<p>Accents in \Views\_Layout.cshtml: à é ë ô</p>
@RenderBody()
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并且Articles.cshtml:
@inherits ViewPage<List<PrepaService.Article>>
<p>Accents in \Views\Articles.cshtml: à é ë ô</p>
Table with code-injected list of items:
<table>
@foreach(var a in Model) {
<tr>
<td>@a.Description</td>
</tr>
}
</table>
Run Code Online (Sandbox Code Playgroud)
这两个文件都正确保存为无BOM的UTF8文件.
我也尝试添加以下内容,但它不会改变任何内容:
SetConfig(new EndpointHostConfig {
AppendUtf8CharsetOnContentTypes = new HashSet<string> { ContentType.Html }
});
Run Code Online (Sandbox Code Playgroud)
我对所有文件和显式charset=utf-8内容类型定义使用无BOM的UTF8编码. …