将字段值复制到文本文件并另存为.sql

时间:2012-08-21 01:53:19

标签: vba ms-access vbscript

在MS Access中,我有一个存储用于项目的SQL的字段。 sql字段是一个备注字段,带有" Rich Text"属性启用。这意味着下面的代码

CREATE TABLE NR_TMP_1_104 AS
     SELECT DISTINCT tmp.otherid
                    ,tmp.groupno
       FROM NR_tmp_1_900 tmp
           ,NR_TMP_1_103 vp
      WHERE tmp.otherid = vp.otherid;



      SELECT groupno, COUNT(otherid) Counts
      FROM NR_TMP_1_104
      GROUP BY groupno;

     SELECT otherid, actualvpchoice FROM NR_TMP_2_102

下面看起来真的很像(我很抱歉这个巨大的块)。这意味着我无法进行docmd.transfertext,获得正常文本的唯一方法就是复制和粘贴。

我需要能够将此字段导出到文本文件并使用.sql扩展名保存。

这是我到目前为止所做的))))

Forms!freports!sql.SetFocus
DoCmd.RunCommand acCmdCopy

如何打开文本文件,将我的剪贴板上的内容粘贴并保存为.sql。

非常感谢

"<div>&nbsp;</div>

<div><font size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">CREATE</font><font
size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF""> </font><font size=3
color=blue style=""BACKGROUND-COLOR:#FFFFFF"">TABLE</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> </font><font size=3 color=olive
style=""BACKGROUND-COLOR:#FFFFFF"">NR_TMP_1_104</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF""> </font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">AS</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">SELECT</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> </font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">DISTINCT</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF""> tmp</font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">.</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF"">otherid</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">,</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF"">tmp</font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">.</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF"">groupno</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">FROM</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> NR_tmp_1_900 tmp</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">,</font><font size=3
color=olive style=""BACKGROUND-COLOR:#FFFFFF"">NR_TMP_1_103</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> vp</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">WHERE</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> tmp</font><font size=3
color=blue style=""BACKGROUND-COLOR:#FFFFFF"">.</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF"">otherid </font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">=</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF""> vp</font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">.</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF"">otherid</font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">;</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">SELECT</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> groupno</font><font size=3
color=blue style=""BACKGROUND-COLOR:#FFFFFF"">,</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF""> </font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">COUNT(</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF"">otherid</font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">)</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF""> Counts</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">FROM</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> </font><font size=3 color=olive
style=""BACKGROUND-COLOR:#FFFFFF"">NR_TMP_1_104</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">GROUP</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> </font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">BY</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF""> groupno</font><font size=3 color=blue
style=""BACKGROUND-COLOR:#FFFFFF"">;</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></div>

<div><font size=3 color=black style=""BACKGROUND-COLOR:#FFFFFF"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
size=3 color=blue style=""BACKGROUND-COLOR:#FFFFFF"">SELECT</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> otherid</font><font size=3
color=blue style=""BACKGROUND-COLOR:#FFFFFF"">,</font><font size=3 color=black
style=""BACKGROUND-COLOR:#FFFFFF""> actualvpchoice </font><font size=3
color=blue style=""BACKGROUND-COLOR:#FFFFFF"">FROM</font><font size=3
color=black style=""BACKGROUND-COLOR:#FFFFFF""> NR_TMP_2_102</font></div>"

2 个答案:

答案 0 :(得分:2)

您可以使用PlainText()功能从备忘录字段的富文本中获取纯文本。以下是立即窗口中的示例。

? DLookup("memo_field", "tblFoo", "id=1")
<div>a <strong>b </strong>c</div>

? PlainText(DLookup("memo_field", "tblFoo", "id=1"))
a b c

获得纯文本后,您无需通过记事本将其写入文件。您可以使用VBA文件函数或Scripting.FileSystemObject方法直接写入文件。这是第一种方法的一个例子。 (我假设Forms!freports!sql包含富文本。)

Dim FileNum As Integer
FileNum = FreeFile()
Open "C:\SomeFolder\your.sql" For Output As #FileNum
Write #FileNum, PlainText(Forms!freports!sql)
Close #FileNum

答案 1 :(得分:1)

仅供参考,如果有人需要的话。 HansUp的代码工作正常,不使用任何引用(下面的代码需要MS Forms参考),并且总体上是一个更好的编码示例。

然而,如果有人需要删除引号,那么这是一种方法。

Dim objFSO
Dim objFile
Dim ClipboardText

Me.sql.SetFocus
DoCmd.RunCommand acCmdCopy


Dim DataObj As New MSForms.DataObject

 DataObj.GetFromClipboard
 ClipboardText = DataObj.GetText



Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\mysql.sql", 2, True)
objFile.WriteLine ClipboardText
objFile.Close