Конвертировать ноль в ноль в базе данных доступа - PullRequest
1 голос
/ 16 января 2011

Учитывая, что Grade.firstExam, Grade.secondExam, и Grade.finalExam - это все ТЕКСТ и , а не числа , я не могу найти точное решениепреобразовать нулевые значения в нули.Я уже пытался использовать NZ (), но он возвращает сообщение об ошибке (неопределенная функция 'NZ' в выражении), я использую VB.net с MS Access в качестве базы данных.я также импортировал System.Data.OleDb Пространство имен.

    SQLStatement = " SELECT     Student.idNumber as 'IDno', "
    SQLStatement &= "           Student.lastName + ', ' + Student.firstName as 'FullName', "
    SQLStatement &= "           Grade.firstExam as 'firstExam', "
    SQLStatement &= "           Grade.secondExam as 'secondExam', "
    SQLStatement &= "           Grade.finalExam as 'finalExam', "
    SQLStatement &= "           ((CDBL(Grade.firstExam) + CDBL(Grade.secondExam) + CDBL(Grade.finalExam) + CDBL(Grade.finalExam)) / 4) as 'Average' "
    sqlstatement &= "FROM       Student LEFT OUTER JOIN Grade ON "
    sqlstatement &= "           Student.idNumber = Grade.idNumber "
    sqlstatement &= "WHERE      Student.idNumber = '" & StudentID & "' "
    SQLStatement &= "ORDER BY   ((CDBL(Grade.firstExam) + CDBL(Grade.secondExam) + CDBL(Grade.finalExam) + CDBL(Grade.finalExam)) / 4) DESC"

Как я могу преобразовать пустую строку или нуль, которые существуют в поле?

Ответы [ 2 ]

3 голосов
/ 16 января 2011

Вы получаете это сообщение об ошибке, вероятно, потому что вы используете функцию VB из запроса SQL:

mySQLRequest = "SELECT ..., NZ(yourNumber,0), ..."

функция NZ не понятна ядром базы данных

запишите ваш запрос следующим образом:

mySQLRequest = "SELECT ..., IIf([myField] Is Null,0,[myField]) as myField, ..."
3 голосов
/ 16 января 2011

В вашем SQL попробуйте что-то вроде этого:

SQLStatement &= "          IIf(IsNull(Grade.firstExam),'0',Grade.firstExam) as 'firstExam', "
...