アクセスデータベースでSUMの列を作成しようとしていますが、やや機能します。
column5
およびcolumn6
は日付です。 2015年11月15日の日付と19/11/2016の日付を持つレコードがあるとします。私が15/11/2016として 'OdDate'を選択し、19/11/2016として 'DoDate'を選択すると、レコードが合計されます。この問題は、2011年5月15日から2011年10月15日に選択すると問題になります。20/11/2016、この場合、スカラーは19/11/2016のレコードを返します.2011年11月15日のレコードは無視されます。さらに数日を選択すると、エラーdbnullがスローされます。
私はなぜdbnullエラーをスローするのか分かりますが、私が知りたいのは、15/11/2016から20/11/2016までを選択すると15/11/2016のレコードを無視するのはなぜですか? dbnullエラー、20/11/2016日付のレコードがありません。代わりに、19/11/2016のレコードのみを返します。DBnull、ms-accessのエラー
Dim provider As String
Dim dataFile As String = My.Application.Info.DirectoryPath
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
dataFile = ("Database\Baza-Original.accdb")
Dim SqlQry1 As String = "SELECT SUM(Column2 + Column3 + Column4) FROM [Table] WHERE Column1 = @1 BETWEEN Column5 = @2 AND Column6 = @3"
Using myconnection As New OleDbConnection(provider & dataFile)
myconnection.Open()
Dim cmd1 As New OleDbCommand(SqlQry1, myconnection)
cmd1.Parameters.AddWithValue("@1", CB.SelectedItem)
cmd1.Parameters.AddWithValue("@2", OdDate.Value.Date)
cmd1.Parameters.AddWithValue("@3", DoDate.Value.Date)
If cmd1.ExecuteScalar() Then
Dim field As Int32
field = cmd1.ExecuteScalar()
LBL.text = field
myconnection.Close()
MsgBox("msg1. ", MsgBoxStyle.Information, "successful")
Else
MsgBox("msg2. ", MsgBoxStyle.Critical, "Unsuccessful!")
Return
End If
End Using
WHERE要素とBETWEEN要素が文字化けして見えます。それは 'どこにColumn1 = @ 1とSOMEDATECOLは@ 2と@ 3の間にあるべきですか? col 5と6はSUMの一部です。値も日付ですか? – Plutonix
WHERE column1部分はおそらく必要ではありませんが、私はあなたが何をしているのか分かりません。 http://www.tutorialspoint.com/sql/ – Plutonix
column1は私が合計しようとしているレコードの名前です、column1に異なる名前のレコードがあります、私はcolumn5と6を編集しました、私はキリル文字を置き換えていました。正直な間違いをした。 – Taffs