【问题标题】:MS Access 2003 - Importing a Text File into MS Access Database TableMS Access 2003 - 将文本文件导入 MS Access 数据库表
【发布时间】:2009-08-08 07:53:20
【问题描述】:

在工作中,我们有这个报告工具。它作为 MDE 工具分发给每个人,锁定得很好(VBA 是不可见的,不能导入任何表、查询、表单等)。当每个人填写其适用部分时,会有一个按钮将其合并为文本文件,然后将其发送到 Outlook。然后每个人都通过电子邮件将其发送给一个人。

所以我想出了在我自己的数据库中使用这个的需要:

远程员工填写一份表格,为他们创建一个演示文稿,这部分我想我已经确定了。这有助于我们跟踪这些演示文稿的指标,而不是员工手动创建 ppt,然后我们落后并手动将摘要中的数据输入表格。有道理。

这是我的问题,在办公室,这已经解决了,但是对于那些在外地工作的人,我需要一个类似上面提到的工具;他们从自动生成的 ppt 中受益,然后我可以让他们通过电子邮件将文本文件发送给我,我可以添加到数据库中。

这是我的问题,因为我才刚刚开始:

-表格很长,因为有很多信息进入一个ppt,所以我使用一个带有标签的表格用于不同的部分,但它都记录在表格中,一个ppt。如何将所有这些信息(这一记录)转换为文本文件,以及如何使用“发送到 Outlook”,一键单击??

-当用户通过电子邮件发送文本文件时,如何将其导入数据库表中?

-如何锁定 MDE,使 VB 不可见,并且无法将对象导入另一个应用程序?

欢迎任何其他建议、提示、“你的疯子!”!一如既往的感谢!

【问题讨论】:

    标签: ms-access vba text


    【解决方案1】:

    您是否考虑过复制而不是文本文件?数据将存储在具有访问安全性的复制后端文件中,该文件可以返回给您。 CDO 应该适合电子邮件。

    文字

    Access 具有 DoCmd.TransferText,它允许您导出和导入文本文件。

    首席数字官

       Private Sub SendEmailCDO()
       'Requires reference to Microsoft CDO for Windows 2000
       Dim cdoConfig As Object
       Dim strSubject As String
       Dim strBody As String
       Dim strFile As String
       Dim cdoMessage As Object
    
           'Set up detail of the mail server
           Set cdoConfig = CreateObject("CDO.Configuration")
           With cdoConfig.Fields
               .Item(cdoSendUsingMethod) = 2 ''cdoSendUsingPort
               .Item(cdoSMTPServerPort) = 25
               .Item(cdoSMTPServer) = "smpt.themailserver.com"
               .Item(cdoSendUserName) = "abc@themailserver.com"
               .Item(cdoSendPassword) = "password"
               .Update
           End With
    
           ''This is the subject line for the email.
           strSubject = "Membership List"
    
           ''This is the message with a little HTML.
           strBody = "<P>Here is the membership list for <FONT color=#ff0000>" _
            & Format(Date, "mmmm yyyy") & "</FONT>.</P><P>Regards, LTD</P>"
    
           ''Location of Attachment
           strFile = "C:\Docs\MembershipList.rtf"
    
           ''Set up the email message
           Set cdoMessage = CreateObject("CDO.Message")
           With cdoMessage
               .Configuration = cdoConfig
               .Subject = strSubject
               .From = "me@here.com"
               .To = "someone@there.com"
               .HTMLBody = strBody
               .AddAttachment strFile
               .Send
           End With
    
       End Sub
    

    更多信息:http://wiki.lessthandot.com/index.php/Access_and_Email

    【讨论】:

    • 我想这是一种可能性。有时这些销售代表已经离开了一段时间,我在想电子邮件 txt 合并会让我更快地将指标输入数据库。什么是 CDO?还记得我吗,菜鸟? ;)
    • 我认为原始问题中绝对没有任何要求表明 Jet 复制的任何适用性,这是一项具有很多缺陷的复杂技术。自 1997 年以来,我一直在使用它为客户创建应用程序,但花了很多年时间才吸取了许多痛苦的教训。这是一个很棒的工具,但不建议在这种情况下使用。如果不是因为良好的电子邮件代码,我会投反对票。如果不是因为复制建议,我会投赞成票。
    • 我在几周前评估了 CDO 在使用独立 Outlook 的环境中发送电子邮件的能力。我得出的结论是,如果没有 Exchange Server,您最终不会在 SENT 文件中获得电子邮件副本。我错了吗?
    • 哦,我刚刚意识到您建议“返回”复制的后端。这是一个错误的建议。副本必须保留在它们首次编辑的原始位置,并且必须同步到位。否则,您会创建“死副本”,最终会影响您的整个副本集。有关解释,请参阅 Jet Replication Wiki 常见问题解答问题 5,dfenton.com/DFA/Replication/index.php?title=FAQ)。由于那个糟糕的建议,我决定投反对票。
    【解决方案2】:

    @贾斯汀问:

    -如何锁定 MDE 以使 VB 不可见,并且对象 不能导入到另一个 申请?

    这个问题毫无意义,除非提出问题的人没有掌握 MDE 是什么。 MDE 中没有可查看的代码。它已被剥离,剩下的就是编译后的 p 代码。有关 Access 中 VBA 编译的有用文章,顺便解释了规范代码和已编译 p 代码之间的关系,请参阅 Michael Kaplan 的 "The real deal on the /Decompile switch."

    请记住,这仅适用于代码承载对象(表单/报告/模块),不适用于表和查询。

    【讨论】:

    • 我确信我缺乏理解是原因,因为....我缺乏理解。但这就是为什么我感谢您的回答和学习参考,因为我需要它。我想这个(就像我的许多其他问题一样)只是问得不好......我注意到使用一些 MDB(不是 MDE),您可以将表单、查询等对象导入到您自己的数据库中,有些似乎有功能被锁定。我该如何完成这个?感谢您容忍新手!
    • 阅读 MDE 的帮助文件。这将回答你的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多