office交流網(wǎng)--QQ交流群號及微信交流群

Access培訓(xùn)群:792054000         Excel免費(fèi)交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請用微信掃碼)

        

錯誤3349 無法記錄所做的更改,因為您輸入的值違反了為此表或列表定義的設(shè)置(例如,您所輸入的值小于最小值或大于最大值)。請更正錯誤并重試

2020-05-02 08:00:00
zstmtony
原創(chuàng)
8214

在幫客戶定做一個Access系統(tǒng),需要導(dǎo)入Excel的數(shù)據(jù)

  使用命令:

  DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "銷售數(shù)據(jù)", strFile, True  'SaleReport 導(dǎo)入Excel數(shù)據(jù)


但出現(xiàn)以下的錯誤


錯誤 #3349:無法記錄所做的更改,因為您輸入的值違反了為此表或列表定義的設(shè)置(例如,您所輸入的值小于最小值或大于最大值)。請更正錯誤并重試


英文出錯信息:"3349: You cannot record your changes because a value you entered violates the settings defined for this table or list (for example, a value is less than the minimum or greater than the maximum). Correct the error and try again."



解決辦法:

  1.手工導(dǎo)入這個Excel表,發(fā)現(xiàn)有異常,提示 產(chǎn)品代碼 和產(chǎn)品組 數(shù)字類型轉(zhuǎn)換異常  ,因為產(chǎn)品代碼 產(chǎn)品組前面 是一些數(shù)字類的代碼,但導(dǎo)入時 可以后面的些產(chǎn)品代碼是文本,但Excel導(dǎo)入時一般會根據(jù)列的前幾行來確定這個列的數(shù)據(jù)類型

     因為前面是數(shù)字,所以Access以為是數(shù)字類型,但后面的內(nèi)容卻是文本,所以導(dǎo)入出錯

  2.在excel中將這2列 格式改為文本,再導(dǎo)入就正常了



相關(guān)的文章:


我在過去一年中一直運(yùn)行良好的TransferSpreadsheet函數(shù)存在問題。

我正在從每次啟動應(yīng)用程序時都會打開的表單的open事件運(yùn)行VBA代碼。
該代碼刪除訪問暫存表的內(nèi)容,然后使用transferspreadsheet函數(shù)將2個excel文件導(dǎo)入到暫存文件中。
我已逐步完成代碼,并且該錯誤發(fā)生在下面的第一個docmd上。
DoCmd.TransferSpreadsheet acImport,“ tblScrtchSO”,_
“ C:\ Users \ mviolet \ My Documents \ OptiTrak2 \ QuarantineTesting \ Internal_Sales_Orders.xls”,
True'- 從內(nèi)部銷售excel文件DoCmd.TransferSpreadcactSrt,導(dǎo)入“,_
“ C:\ Users \ mviolet \我的文檔\ OptiTrak2 \ QuarantineTesting \ MK_Sales_Orders.xls”,是'-'從MK_Sales_Orders導(dǎo)入
如果我注釋掉第一個docmd,則第二個可以運(yùn)行。因此,第一個文件中的數(shù)據(jù)似乎是罪魁禍?zhǔn)?,但是?shù)據(jù)看起來還可以。我嘗試從第一個excel文件中刪除數(shù)據(jù)行,但是即使只有一行excel數(shù)據(jù),它仍然會失敗。
錯誤消息是:
“ 3349:您不能記錄所做的更改,因為您輸入的值違反了為此表或列表定義的設(shè)置(例如,值小于最小值或大于最大值)。更正錯誤并嘗試再次。”
暫存表上沒有規(guī)則。與暫存表沒有關(guān)系。
excel文件是xls文件,數(shù)據(jù)庫是Access 2010中運(yùn)行的mdb文件。該應(yīng)用程序正在使用用戶級安全性。
感謝您的任何想法。
標(biāo)記
丹尼爾·皮諾
2013年12月10日,下午10:24
如果您嘗試手動導(dǎo)入會怎樣?
excel列數(shù)據(jù)是否與Access表字段數(shù)據(jù)類型匹配?
您是否已使用了有效的舊工作簿,并將其與未能看到發(fā)生變化的工作簿進(jìn)行了比較?(假設(shè)更改已在Excel中發(fā)生,可能不是這種情況,但絕對值得驗證)
基思·穆勒(Keith Mueller)
2013年12月10日,下午10:28
馬克,
我會檢查您的數(shù)據(jù)類型。excel文件中可能存在“錯誤”數(shù)據(jù)。您可能試圖將太大的數(shù)字放入整數(shù)字段,或者可能試圖將錯誤的日期放入日期字段。
我必須使導(dǎo)入暫存表中的字段主要是文本字段,因為導(dǎo)入文件中的數(shù)據(jù)不良。然后,我可以在ETL的“轉(zhuǎn)換”步驟中“驗證”數(shù)據(jù)。
祝你好運(yùn),開心,
基思
市場
2013年12月11日下午04:55
感謝您的建議。
手動將excel文件導(dǎo)入Access暫存表中,并創(chuàng)建一個Access錯誤表,指示第110行上的Excel錯誤。當(dāng)我返回Excel并查看第110行時,它是最后一行之后的第一個“空”記錄數(shù)據(jù)的。我選擇并刪除了Excel中的行并保存了文件。當(dāng)我回到Access并再次手動導(dǎo)入時,它現(xiàn)在可以正確導(dǎo)入,現(xiàn)在transferspreadsheet似乎也可以正常工作。
transferspreadsheet函數(shù)不會在Excel中查找第一個空行并在此處停止(不導(dǎo)入空記錄)嗎?在“空”行110中是否有不可見的字符?還是轉(zhuǎn)帳電子表格使用了某種程度上錯誤的Excel范圍?
無論如何,它似乎正在工作。
基思·穆勒(Keith Mueller)
2013年12月11日,下午08:47
...在該行中有東西,一個單元格中可能有空格...如果繼續(xù)出現(xiàn)該錯誤,則需要調(diào)整表中的數(shù)據(jù)類型,就像我說過我使用允許空值的文本字段一樣,然后“清理”數(shù)據(jù)。
安尼爾是對的!手動導(dǎo)入引發(fā)了錯誤...
很高興您找到了它!
dmhzx
2013年12月12日,上午03:53
傳輸電子表格有其自己的黑暗而神秘的方法來決定要導(dǎo)入多少行以及要導(dǎo)入多少列。
經(jīng)常會獲得65000行以上的空數(shù)據(jù)(或者說是習(xí)慣)
excel中的數(shù)據(jù)質(zhì)量通常很差,以至于我最終一次導(dǎo)入一個單元格。
有趣的項目通常是
11月31日這樣的
日期,例如
文檔長度超過255個字符的“ TBA” Ttiles 日期(順便說一下,transferspreadshheet會自動截斷而不會報告錯誤。
在數(shù)據(jù)末尾添加空格。
如果有“序列號”要導(dǎo)入的數(shù)字,其中有些數(shù)字帶有前導(dǎo)零,您最終可能會只輸入進(jìn)來的數(shù)字,或者除這些之外的所有東西,或者前導(dǎo)零掉了,具體取決于您設(shè)置傳輸方式的方式
一件事,如果一個excel導(dǎo)入突然停止工作,幾乎可以肯定是excel文件中的數(shù)據(jù)所引起的。根據(jù)文件
的大小,一次存儲一個單元的速度仍然可能會非??臁?br />
    分享
    文章分類
    聯(lián)系我們
    聯(lián)系人: 王先生
    Email: 18449932@qq.com
    QQ: 18449932
    微博: officecn01
    移動訪問