如何在ms访问中存储包含转义序列的文本

时间:2013-02-27 15:39:11

标签: ms-access

当我尝试在MS ACCESS表中存储包含“C”代码的文本时(以编程方式)。它用一些问号符号替换转义序列('\ n','\ t')。

示例:

存储代码:

#include<stdio.h>
int main()
{
  printf("\n\n\t Hi there...");
  return 0;
} 

当我看到上面插入的代码的MS-Access表时,它显示每个换行符和'\ t'字符替换为'?'一种象征。

我的问题“是否存在MS-Access字段的任何其他数据类型,它存储代码,而不用某些符号替换转义序列?” 和 “像'MYSQL这样的其他DBMS中存在'原始'数据类型是否可以完成我的工作?”

这是它在access-07中的显示方式:

This is how it shows question mark symbols

2 个答案:

答案 0 :(得分:0)

看起来源文本中的换行符不是Windows标准的CRLF(回车符,换行符)。找出那些神秘人物的字符代码。

使用下面的程序,我可以为它提供一个文本字符串,它将列出每个字符的代码。以下是立即窗口中的示例。

AsciiValues "a" & vbcrlf & "b"
position      Asc           AscW
 1             97            97 
 2             13            13 
 3             10            10 
 4             98            98 

如果我想检查存储在表格文本字段中的值,我可以使用DLookup获取该值并将其提供给该函数。

AsciiValues DLookup("memo_field", "tblFoo", "id=1")
position      Asc           AscW
 1             108           108 
 2             105           105 
 3             110           110 
 4             101           101 
 5             32            32 

确定问题字符的代码后,您可以执行UPDATE语句,将问题字符代码替换为合适的替代字符。

UPDATE YourTable
SET YourField = Replace(YourField, Chr(x), Chr(y));

这就是程序......

Public Sub AsciiValues(ByVal pInput As String)
    Dim i As Long
    Dim lngSize As Long
    lngSize = Len(pInput)
    Debug.Print "position", "Asc", "AscW"
    For i = 1 To lngSize
        Debug.Print i, Asc(Mid(pInput, i, 1)), AscW(Mid(pInput, i, 1))
    Next
End Sub

答案 1 :(得分:0)

我会说你可能缺少整个换行符。 Access中的换行符包含回车符(ASCII 13) AND 换行符(ASCII 10)。这缩写为CRLF。你可能只有一个或另一个,但不是两个。

使用HansUp的AsciiValues程序来查看。