2010-11-17 31 views
0

我發現這一點:如何將訪問備註字段轉換爲訪問查詢中的文本字段?

SELECT [PartsInfoRaw].[Types] as memofield, Replace([PartsInfoRaw].[Types],"","") AS textfield 
into newTable FROM [PartsInfoRaw]; 

其中類型是在含有PartsInfoRaw一些描述一個memofield。由於某種原因,替換文本字段中的memofield會進行轉換。但它感覺不舒服,我不確定它是否會變質。有沒有人有更好的主意?

+0

爲什麼您認爲需要區分作爲備忘錄還是作爲文本返回的字段?是否因爲您正在運行MakeTable查詢?如果是這樣,那很可能是您的問題 - MakeTable查詢不屬於生產應用程序。它們對於快速和骯髒的目的很有用,也可用於創建可以重新使用的臨時表,但不需要定期在生產應用程序中執行。如果您重新使用相同的臨時表,則可以將每個字段的數據類型設置爲任何您喜歡的內容。 – 2010-11-17 22:38:33

回答

0

您是否已經在替換函數返回超過255個字符的[Types]記錄上對此進行了測試?你會發現你的一些[textfield]數據被砍掉了。

Replace函數返回一個字符串,所以Access假定文本類型字段是合適的。

我不知道你爲什麼必須使用select into,比創建表更容易,刪除所有記錄然後附加新數據。

試着先創建你想要的結果表,這樣你可以確保兩個字段都是類型備忘錄。然後將您的查詢轉換爲追加(插入)查詢。如果您只想在newTable表中查詢此結果,您將必須先運行Delete查詢。

delete from newTable; 

你的查詢作爲附加:

Insert into newTable(memofield, textfield) 
SELECT [PartsInfoRaw].[Types] as memofield 
    , Replace([PartsInfoRaw].[Types],"","") AS textfield 
FROM [PartsInfoRaw]; 
4

這不是我清楚你想要什麼來完成,但你在你的SELECT嘗試左([MemoField],255)?