以下のコードは、私のCrystal Reportの選択式を設定するコードです。vb.netの日付値をフォーマットしても間違った値が返される
Dim dateTo As Date
dateTo = dtpCRTo.Value.ToShortDateString
dateTo = Format(dateTo, "dd/MM/yyyy")
If cmbCRSupplier.Value = "" Then
selectionFormula = "{Sales_Headers.Stage} = '6' AND {Sales_Lines.PaymentDate} <= #" & dateTo & "#"
私は取得しています問題は、私がテストしていたデータが細かい6のSales_Headers.Stage
値、および30/11/2016のSales_Lines.PaymentDate
値を持っている(英国では、dd/MM/yyyy
)ただし、私が使用しているDateTimePicker
が2016年12月11日に表示されていても、dateTo
の値はMM/dd/yyyy
フォーマットの12/11/2016として返されますので、レポートにはデータが表示されません。日付。
なぜ私はフォーマットしていますが、この形式で日付が返されますか?私は書式設定のセクションを入れて、選択式でdtpCRTo.Value.ToShortDateString
を持っていた前
EDIT
はまた、それはまだ同じことをしました。日の部分が13未満である、それは月のように、その一部を扱いますが、日の部分が13以上になると正常に動作します任意の日付の
...
EDIT 2:
次のように私が今持っているクエリは次のとおりです。
Dim dateTo As Date = dtpCRTo.Value.AddDays(1).Date
dateTo = Format(dateTo, "dd/MM/yyyy")
If cmbCRSupplier.Value = "" Then
selectionFormula = "{Sales_Headers.Stage} = '6' AND {Sales_Lines.PaymentDate} < #" & dateTo & "#"
これは、各月の最終日を選択する場合を除いて、すべての日付のために動作します。 1月31日を選択した場合、dateTo
の値は02/01/2017(2月2日)になり、2月1日の数式で処理されます。これを回避する方法はありますか?
「PaymentDate」がテキスト列でない場合、日付には書式がないため、書式は関係ありません。 – Plutonix
@Plutonixいいえ、 'PaymentDate'は' Date/Time'フォーマットですが、フォーマットビットを追加する前でさえまだデータを表示していませんでした – Harambe
'DateTime' *タイプ*は常に日付と時刻の部分を持っています'<='を使用して、時間要素に除外したくありません。これを試してください: 'dateTo = dtpCRTo.Value.AddDays(1).Date'これは、その日付の任意の時刻を含むすべての日付を含めるべきです。 – Plutonix