为什么这个vba表重新链接的代码会导致错误3219?
我正在尝试重新链接 MS Access 数据库中的表,该数据库与下面运行的代码不同;这样我就可以将修复数据库用作各种“补丁"...... 我已经修改了我找到的代码 这里,以便它重新链接由“修复/补丁数据库"打开的数据库中的表 在我运行代码之前,我确保两个数据库都是打开的,以便一个可以修复另一个,以便更轻松地自动应用修复程序. 但是,当我运行代码时,当我到达读取 tdfLinked.RefeshLink 的行时,它会刷新链接表,我得到一个 Runtime error '3219' Invalid Operation 错误. Sub FixDB() Call LinkTable("somelinkedTble", "SOMESERVER\NAMED_SQL_INST32", "Database1", "Some_Schema.somelinkedTble", True) End Sub Function LinkTable(LinkedTableAlias
218 2022-08-09
编程技术问答社区
如何找到主键序列和主键的最大值?
我知道这个问题有点傻,我需要运行这些查询以查看值是否不同步,但我收到类似“关系不存在"的错误: SELECT MAX(the_primary_key) FROM the_table; SELECT nextval('the_primary_key_sequence'); 我有一个名为“Audit"的表,主键列为“auditID".当我运行第一个查询时,我得到了结果: SELECT MAX('auditID') FROM "Audit"; max --------- auditID (1 row) 但最大值应该超过 10000. 然后我运行第二个查询,我得到错误“关系“the_primary_key_sequence"或“Audit_auditID_seq"不存在".如何检查是否存在任何主键序列? 错误: select setval('Audit_auditID_seq', 171832, true); ERROR: relation "au
404 2022-08-09
编程技术问答社区
VBA。从HTML表中抓取信息
我正在尝试从 html 表中提取信息.我想将表中的每个元素添加到集合中.这是我目前所拥有的. Dim htmlTable As Object Dim coll2 As Collection Set coll2 = New Collection Set IE = New InternetExplorerMedium With IE '.AddressBar = False '.MenuBar = False .Navigate ("PASSWORDED SITE") .Visible = True End With Set htmlTable = IE.Document.getElementById("ctl00_ContentPlaceHolder1_gvExtract") Set tableItem = IE.Document.getElementsByTagName("td") With coll2 For Each tableItem In htmlTable.innerHT
116 2022-08-09
编程技术问答社区
串联富文本字段(HTML)并在Access表格上显示结果
我有一个访问数据库,它处理“文章"和“项目",它们都是文本内容.一篇文章由几个项目组成.每个项目都有一个富文本字段,我希望通过连接其项目的所有富文本字段来显示文章的文本内容. 我编写了一个 VBA 程序,它连接项目富文本字段并将其提供给我的表单上的独立 TextBox 控件(Textbox.Text = 结果字符串),但它不起作用,我收到一条错误消息,提示“此属性参数太长".如果我尝试将单个文本字段输入到 Textbox 控件中,我会收到另一个错误,指出“无法更新记录集",我不明白,这是关于什么记录集? 每个项目字段通常是这样的(我使用方括号而不是“",因为否则帖子的显示不正确)[div][font ...]Content[/font] [/div]",还包括“[em]"标签. 在我的问题面前,我有几个问题: 1) 如何将 HTML 字符串输入到独立的 Textbox 控件中? 2) 可以连接这些 HTML 字符串还是应该修改标签,例如只有一个“[
192 2022-08-09
编程技术问答社区
创建Outlook电子邮件时,无论使用何种换行命令,.Body文本都是双倍行距。
我正在通过 VBA 创建一个 Outlook 电子邮件,该电子邮件通过单击 Access 表单按钮运行.对于 .Body,我使用以下串联字符串设置我的“strBody"字符串对象: strBody = "First Line of text here." & vbNewLine & _ vbNewLine & _ "Second Line of text here." & vbNewLine & _ Chr(187) & "Third Line of text here." & vbNewLine & vbTab & _ Chr(187) & "Fourth Line of text here." & vbNewLine & vbTab & _ Chr(187) & "Fifth Line of text here." & vbNewLine & vbTab & vbTab & _ Chr(187) & "Sixth Line of te
284 2022-08-09
编程技术问答社区
在vba访问中循环浏览记录并增加值
我正在尝试遍历表中具有部件号和匹配部件号的记录,并在 pos 字段中增加一个值.我之前问过一个问题(Object variable or With block variable没有设置 Access vba) 具有相同的项目,但用于过程的不同步骤(运行查询).我还没有在 Access 中找到解决这个问题的问题,但是我从这个问题中得到了一些指示:循环访问 MS Access 中所有记录的代码.现在,我正在尝试编写代码来循环遍历记录并增加 pos 字段中的值. 将运行的查询: SELECT CTOL.ID, CTOL.BOM_PART_NAME, CTOL.CII, CTOL.[PART FIND NO], CTOL.CSN, CTOL.AFS, CTOL.EQP_POS_CD, CTOL.LCN, CTOL.POS_CT, CTOL.SERIAL_NO, CTOL.PART_NO_LLP, [CTOL_Asbuilt].[PART-SN], [CTOL_Asbuilt].[PART
90 2022-08-09
编程技术问答社区
MS Access VBA SQL-将一条记录从一个表中插入到另一个表中
你好 Stackoverflow 社区, 下面是我在 Access VBA 中作为用户窗体上的单击按钮的代码.如您所知,我对 VBA 的了解非常有限.SQL 但试图修改我公司的一个数据库.我有两个重复的表(PrintTable 和 ManPowerCalculator),我试图将 ManPowerCalculator 表中的每个项目插入到 PrintTable 中,其中用户窗体上的 EmplID 输入框 = ManPowerCalculator 表中的那个. CurrentDb.Execute "INSERT INTO PrintTable VALUES (*) SELECT (*)FROM ManPowerCalculator WHERE EmplID # = " & Me.EmplID " 另外我没有定义任何变量,也许它会提高效率.感谢您花时间阅读本文. 解决方案 这应该做的工作: CurrentDb.Execute "INSERT INTO PrintTa
290 2022-08-09
编程技术问答社区
如何在MS access中使用VBA向数据库表插入数值
我最近开始使用访问权限.我正在尝试在数据库中插入几行;但是,我被卡住了,因为它抛出了一个错误: 参数太少. 我有一个表测试,其中只有一列名为 start_date 我想插入两个日期之间的所有日期,例如,如果我考虑 1/7/2014 到 3/7/2014 我需要日期为 1/7/2014,2/7/2014,3/7/2014 在我的表中,但是我在插入时遇到问题我使用的代码如下 Private Sub createRec_Click() Dim StrSQL As String Dim InDate As Date Dim DatDiff As Integer Dim db As database InDate=Me.FromDateTxt 'here I have used a code to find out the difference between two dates that i've not written For i = 1 To DatDiff StrSQL =
88 2022-07-29
编程技术问答社区
试图从VBA向Access数据库执行一个SQL语句,在INSERT INTO语句中得到一个语法错误。
这是代码: sqlStr = "INSERT INTO Students (ID, Last Name, First Name, E-mail Address, Student ID, Level, Date of Birth, Home Phone, Address, City, State/Province) VALUES ('" & ID.Value & "','" & lastName.Value & "','" & firstName.Value & "','" & email.Value & "','" & studentID.Value & "','" & birthday.Value & "','" & phone.Value & "','" & address.Value & "','" & city.Value & "','" & state.Value & "');" DoCmd.RunSQL sqlStr .Value 变量来自用户表单的文本框. 解
488 2022-07-29
编程技术问答社区
如何为整个工作选择一台打印机?
我目前有一个 Access 2003 数据库,它有一个表单,可以根据用户选择的作业打印一系列报告.该查询也在 VBA 代码中,该代码查看作业的编目部件并打开其相应的报告. 正确的代码如下: Private Sub Print_Report_Click() Dim default_cat As Dao.Database Dim d As Dao.Recordset Dim q As String Set default_cat = CurrentDb q = "SELECT DISTINCT CATALOG, USER3 FROM [_MASTER_UPLOAD] WHERE SerialNumber='" & Me.[SerialNumberSelection] & "'" Set d = default_cat.OpenRecordset(q, dbOpenDynaset) d.MoveFirst DoCmd.RunCommand acCmdPrint Do Whil
106 2022-07-29
编程技术问答社区
在上传到Access数据库时,将用户输入的信息添加到Excel表中
我正在尝试将用户输入与现有 Excel 文件数据结合起来,以便在将它们上传到 Access 数据库时将它们全部包含在一个表中. 这是我的布局方式,但我愿意根据需要进行更改. 我完全不知道下一步该做什么.上传日期会自动填写,但其余参数会因产品而异,必须手动填写.我还希望每个字段都必须填写,因此会有一条错误消息说“输入所有参数"或类似的内容,如果不是,则不允许完成上传. 之所以需要在 Access 而不是 Excel 中执行此操作,是因为 Excel 文件是由 AutoCad Electrical 生成的,并且它可以包含的数据有限.我尝试在 Excel 中添加列并导入它们,但我的老板说我们需要用户输入框来简化操作. 这是我必须导入 Excel 文件并将其添加到正确表 (_MCL UPLOAD) 的代码.现在我只想能够将用户输入作为额外的列添加到此表中: Private Sub ImportMCL_Click() On Error GoTo ErrorHandler
120 2022-07-29
编程技术问答社区
有没有一种方法可以在访问表单上有条件地列出字段名?
我有一个大型数据库来监控员工参加培训活动的情况.每条记录都是一名员工,并且(连同基本信息)有大约一百个字段代表过去 10 年的培训活动.这些字段都是是/否复选框,因此会检查员工是否参加了该研讨会. 我有一个表单,可以轻松查看个别员工的信息,但我希望此表单上有一个动态列表,显示当前选定的员工参加了哪些活动. 所以我想要一个列表来查看指定记录的哪些字段被指定为真. 有没有办法做到这一点?找了一天也没找到解决办法.谢谢. 解决方案 可能是这样的,假设所有 boolean 字段都是相关的并且字段名称是车间名称: Public Function getWorkshops(ByVal strEmployee As String) as String ' Declare vars Dim db as DAO.Database Dim rs as DAO.Recordset Dim lngFieldsCount as Long Dim n as Long Dim strWor
100 2022-07-29
编程技术问答社区
控件或子表格控件在调整大小时对这个位置来说太大了
我在 Access 2003 中有一个简单的表单.该表单有一个 List 控件和一个按钮.我想让列表与表单一起调整大小(仅垂直),而按钮仍位于列表的右下角.我在表单的调整大小事件中使用了以下代码. list.Height = Me.InsideHeight - list.Top - 200 commandButton.Top = list.Height + list.Top + 50 当我调整表单大小时,这可以正常工作,直到表单高度达到一定高度.然后我得到这个错误; 运行时错误“2100":控件或子窗体控件对于此位置来说太大 这个错误发生在我分配 commandButton.Top 的那一行.如果我删除此行,则列表高度会改变.我的表单中没有任何子表单. 有人知道为什么会这样吗? 谢谢 解决方案 我认为是因为你需要先调整表单的详细信息部分的大小. 尝试将代码更改为 Me.Section(0).Height = Me.InsideHeight
90 2022-07-29
编程技术问答社区
根据用户输入过滤报告 Microsoft Access
如果这是一个简单/直接的解决方案,我深表歉意,但我是 Access 新手,而且我的报告遇到了一些问题. 我创建了一个报告模板,我想打开一个基于特定 IDENT NO 的单页报告.然后从相关的 IDENT NO 生成报告中的所有字段.就目前而言,当我打开报表时,它将在打开时为报表数据表中的每个 ID 号创建一个单页报表. 相反,当用户尝试打开报告时,我希望它提示用户输入他们正在寻找的特定报告的标识号,以便它只打开与输入的相关联的单个 1 页报告身份证号. 关于如何实现此过滤的任何想法? 解决方案 可以显示一个 InputBox 供用户插入 ID,然后打开并过滤报表. Dim id As String id = InputBox("Enter the identification number:", "YourInputBoxTitle") 'if a value was entered, open and filter report If Len(Tr
124 2022-07-29
编程技术问答社区
在一列中存储代码并使用它
我有一列包含数据,例如 year(date) 或 date-365. 如何将此文本用作代码而不是文本?意思是,我希望能够做类似的事情 me.ProjectName="ddddd " & MyColumnWithCode 并得到 ddddd 2017 或 ddddd 10/21/2016 我用我能想到的各种方式搜索了谷歌,但没有得到任何结果. 解决方案 你可以使用: Me.ProjectName="ddddd " & Eval(MyColumnWithCode) 但不是你现在的代码.它必须阅读: Year(Date()) Date()-365
56 2022-07-29
编程技术问答社区
如何在MS Access中保存计算值
我有一个我创建的表单中的文本框. 我想在文本框的 Control Source 属性中添加一个表达式.我还想使用文本框的控制源属性将文本框绑定到表中的字段. 有什么方法可以在特定文本框的控件源属性中添加字段名称和表达式? 表达式基本上将几个数字相加并在该文本框中显示输出.我希望将输出存储在表中的一个字段中. 解决方案 可以将文本框链接到表格控件源,然后将文本框的值设置为两者的AfterUpdate属性中表达式的结果包含您要添加的值的对象. 例如 me.textbox.value= int1 + int2 这个值应该被写入表中.
178 2022-07-29
编程技术问答社区
Access VBA无法创建表格
我在使用 VBA 创建 Access 表,然后通过 open-recordset 访问它时遇到问题.我的目标是将记录写到表中.如果我手动创建表,我的代码可以完美运行.如果该表不存在,则程序在打开记录集尝试时终止.错误信息是: “MSO Access 数据库引擎找不到对象‘myTable’ 其中“myTable"是 argTable 的值.这是代码片段: Dim tbl As DAO.TableDef Dim db As DAO.Database Dim fld As DAO.Field Set db = CurrentDb() Set tbl = db.CreateTableDef(argTable) Set fld = tbl.CreateField("F1") Set rstAccessTableOut = db.OpenRecordset(argTable, dbOpenTable) 我做错了什么?(注意我不想使用 SQL.) 解决方案 完成添加字段后
184 2022-07-29
编程技术问答社区
循环浏览特定的组合框(阵列)。
我只需要重新查询表单中的特定组合框,我想在数组中拥有这些组合框.组合框不按顺序排列,我不想遍历表单中的所有组合框. 我可以比较它的最好方法是在 Excel 中循环指定工作表: Dim ws As Worksheet For Each ws In Worksheets("Sheet1", "Sheet4", "Sheet7") ' do something Next ws 我无法弄清楚如何在 Access 中执行此操作.我已经尝试过这种变体: For Each Control In Me.Controls(Me.cbo1, Me.cbo4, Me.cbo7) Control.Requery Next Control 解决方案 对于轻量级的方法,可以将组合框名称放在逗号分隔的字符串中,Split() 将字符串放入数组中,然后循环遍历数组成员. Const cstrNames As String = "cbo1,cbo4,cbo7" Dim varName
48 2022-07-29
编程技术问答社区
Access VBA-启动受密码保护的数据库并关闭现有数据库
我正在尝试设置一个“启动器"数据库,其中包含将打开第二个受密码保护的数据库的 vba 代码.(然后我可以将启动器 db 转换为 accde,因此无法读取包含密码的 VBA) 到目前为止,我有以下代码... Private Sub Form_Load() Dim acc As Access.Application Dim db As DAO.Database Dim strDbName As String strDbName = "C:\database Folder\secureDB.accdb" Set acc = New Access.Application acc.Visible = True Set db = acc.DBEngine.OpenDatabase(strDbName, False, False, ";PWD=swordfish") acc.OpenCurrentDatabase (strDbName) Application.Quit
136 2022-07-29
编程技术问答社区