私のアプリケーションで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
と表示されるのはなぜですか?
これはよくある問題ですか、間違っていることがありますか?
Excelセルを 'Date'型にフォーマットすることは、あなたが望むものを入力することができるので、意味がありません。行くべきコードがないので、私は悪い日付の可能性をExcelで詳しく見ていきます。 dd/MM/yyyyはmm/dd/yyyyと混同することがあります。ちょうど推測。 – JohnG
@JohnG MM/dd/yyyyと混同してしまうかもしれないかどうかを考えましたが、隣の列は14/03/2017と完全にうまく表示されていますので、そのような理論を暴露しました – David
完全にオフにフォーマット? nullの場合は日付とは関係がない可能性が高い文字列を表示するはずです。 – JohnG