2017-02-21 3 views
0

私のアプリケーションでExcelからAccessへのインポートプロシージャを作成しました。インポートに使用しているExcelスプレッドシートは、作成したエクスポート手順を使用して作成したすべてのファイルです。ExcelからAccessへのアクセスDataGridView経由でのインポートすべての日付の表示なし

DataGridViewのデータを見ると、1つの列に日付が表示され、3行にNULLという値が表示されます。これらの3行の日付は同じです(2011年5月15日)。

スプレッドシートの日付がNULLだったため、最初はそれが問題だと思っていましたが、そうではありませんでした。

Excelで何らかの調査をしたところ、その列の他の日付はすべて「日付」タイプに設定されていましたが、問題のあるこれらの3つのセルは「一般」に設定されていました。

エクスポートプログラムでは、このコードを使用して、この列のセルをdd/MM/yyyy形式の日付に設定しています。

Dim formatRange As Excel.Range 

formatRange = xlWorksheet.Range("C1", "C9999") 
formatRange.NumberFormat = "dd/MM/yyyy" 

formatRange = xlWorksheet.Range("D1", "D9999") 
formatRange.NumberFormat = "dd/MM/yyyy" 

はその後、ちょうど実験として、私は「日付」に問題のある細胞の種類を変更して再度インポートを試みた - しかし、それはまだNULL細胞を示します。

私は2つの質問があると思います。

  • エクスポートでは、最初にこれらのセルをdd/MM/yyyyの日付に設定しないのはなぜですか?それは価値観と関係がありますか?
  • 次に、Excelでタイプを「日付」に変更しても、表示がNULLと表示されるのはなぜですか?

これはよくある問題ですか、間違っていることがありますか?

+0

Excelセルを 'Date'型にフォーマットすることは、あなたが望むものを入力することができるので、意味がありません。行くべきコードがないので、私は悪い日付の可能性をExcelで詳しく見ていきます。 dd/MM/yyyyはmm/dd/yyyyと混同することがあります。ちょうど推測。 – JohnG

+0

@JohnG MM/dd/yyyyと混同してしまうかもしれないかどうかを考えましたが、隣の列は14/03/2017と完全にうまく表示されていますので、そのような理論を暴露しました – David

+0

完全にオフにフォーマット? nullの場合は日付とは関係がない可能性が高い文字列を表示するはずです。 – JohnG

答えて

0

答えは@TnTinMnとして指摘されています。

Extended PropertiesExtended Properties='Excel 12.0;IMEX=1;';に何らかの理由で文字列として表示されていた問題の日付が表示されました。理由は明らかではありませんが、書式設定は他のものと同じですが、この小さな変更を使用して一致しないデータ型の問題が解決されました。

関連する問題