【问题标题】:MS Access 2003 - Information from a form output to a text fileMS Access 2003 - 从表单输出到文本文件的信息
【发布时间】:2010-12-03 06:45:37
【问题描述】:

所以我有一个包含大量文本框、组合框等的表单。表单模块中有 VB 来检查是否有重复项,然后运行一些更新查询以将信息保存到表中.一切都很好。

我的问题是我可以在这个表单模块中使用什么 VB 方法从所有这些对象(txt、cmb 等)中获取信息并将其输出/保存到文本文件中?

我只是以一个带有以下三个文本框的表单为例:

Text1 - String
Text2 - Date
Text3 - True/False

我知道用于将其添加到数据库表的 vb,但我希望能够将信息保存在文本文件中,然后使用 SendObject 方法允许将这些文本文件从字段通过电子邮件发送到总部,然后放在一个更大的数据库中。

outlook sendobject 我认为我对这部分有很好的处理,只需要弄清楚如何创建一个包含数据的文本文件。感谢您的帮助!

【问题讨论】:

  • 表单用于输入数据,而不是用于发送到另一个数据库。
  • 通常是这样,诚然这很奇怪,但情况就是这样。我知道这是可以做到的(虽然这是一种非常奇怪的方法),但由于需求与资源的关系,这是我必须完成的最佳方法。实际上还有另一个像这个一样的访问工具,但是我没有创建它。所以我只是想弄清楚如何以一种奇怪但必要的方式完成这项工作。

标签: ms-access automation vba


【解决方案1】:

您可以遍历表单上的控件集合, 获取控件的名称并使用 select case 获取控件的类型并从中获取适当的值。

您可以将这些对写入字符串/文本文件,然后将其制成邮件正文。

或者使用 Access DoCmd.SendObject

DoCmd.SendObject acSendQuery, QueryName, acFormatXLS, emailAddress, "", "", "Form Data", "", 0

其中 QueryName 是提取您需要的所有信息的查询。 这会将其作为附加的 XLS 文件发送到电子邮件。

【讨论】:

    【解决方案2】:

    您想打开一个文本文件并使用 write # 或 print # 语句。进入 Access VBA 并在写入帮助中搜索。您将找到 Write # 语句,该语句将为您提供必要的示例代码。根据您的要求,您可能需要 print # 语句。

    【讨论】:

      【解决方案3】:

      您的控件、文本框、组合框等是否绑定到记录集?在这种情况下,您是否更愿意将相关的表记录发送给任何相关人员或任何相关人员,而不是通过文本文件收集控件的值?我的意思是这可以做到,但我真的觉得很奇怪!

      编辑:遵循@galleySlave cmets,一个想法是编写类似于此的代码:

      Dim m_dataInForm as string, _
          m_control as control
      
      m_dataInForm = "Page Header"
      for each m_control in screen.activeForm.section(1)
          m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf
      Next m_control
      m_dataInForm = "Details"
      for each m_control in screen.activeForm.section(o)
          m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf
      Next m_control
      m_dataInForm = "Page footer"
      for each m_control in screen.activeForm.section(2)
          m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf
      Next m_control
      

      m_dataInForm 将包含所有数据标题 (.caption) 和值 (.value)。您可能需要一些额外的代码来避免在没有标题(如行)或值(如标签)的控件上出现错误和/或以预期格式(“是”而不是 -1)获取值。这将花费您一些额外的说明,例如

      SELECT CASE m_control.controlType
      

      然后您就可以通过短信发送m_dataInForm 值或将其保存为文件。

      【讨论】:

      • 这很复杂。这必须是一个简单的远程 MDE,与表或网络没有真正的链接……只是在 Associates 笔记本电脑中。所以这是可能的,因为我已经看到了,实际上已经有一个类似的 MS Access 工具在工作中被不同的部门使用。所以这些文本框、组合文本等都不会绑定到记录集……我猜我必须用代码来做这一切?我知道我正在尝试做的 ppt 自动化方面的所有代码(而且很多!!),并且我假设如果我可以获取所有这些信息并使用代码将该方面工作到 ppt.. .
      • ...那么我应该能够获取所有这些值并将它们输入到 txt 文件中。我也知道发送电子邮件的一些自动化功能....只是不知道如何处理中间的附件。如果我在远程工具的代码中创建一个 select 语句,而不执行......我可以将 UPDATE SQL 语句保存到 WORD doc、xls 文件、记事本等...... VB 是什么?认为这会工作
      • 我同意这很奇怪....只是这种情况。我真的不能等到这些同事从现场回来,然后在他们返回时提取信息,因为我需要大约 10 组不同的数据(整个过程),而且这些人通常会离开相当长的一段时间
      • 感谢 Philippe...我在这里得到的任何建议总是很有帮助的。我很感激!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2011-01-04
      • 1970-01-01
      相关资源
      最近更新 更多