Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2016, 20:59   #1
Satana94
 
Регистрация: 27.04.2016
Сообщений: 8
По умолчанию MS Excel VBA. Неправильно начисляет стипендию. Если 2-ка стипендия не начисляется. Троечникам при наличии 4 и 5 - 1000р.

Sub aa()
Dim cnn As New ADODB.Connection
Dim rst As ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4 .0; Data Source= A:\Стипендия\Студент. mdb"
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open "Select * from Студенты", cnn, adOpenKeySet, adLockOptimistic
k = 1
rst.MoveFirst
Do
For i = 1 To 3
If rst.Fields(i) = 2 Then
s = 0
Else
If rst.Fields(i) = 3 Then
s = 1000
End If
End If
Next i
Cells(k, 1) = rst.Fields(0)
Cells(k, 2) = s
rst.Move 1
k = k + 1
Loop Until rst.EOF
End Sub

ИНФОРМАЦИЮ берет из таблицы MS Access и выводит в Excel.
Изображения
Тип файла: jpg Excel.jpg (55.2 Кб, 41 просмотров)
Тип файла: jpg Access.jpg (52.7 Кб, 35 просмотров)
Satana94 вне форума Ответить с цитированием
Старый 04.05.2016, 21:37   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

База на дискете? 8)
Базу и ексель файл архивом выложите
Сама проверка неверно написана. Сначала проверяем на 2, если rst.Fields(1)=2 or rst.Fields(2)=2 or rst.Fields(3)=2 тогда выводим 0, иначе
проверяем, например, сумму. непонятна фраза "Троечникам при наличии 4 и 5 - 1000р.", на считаем что ученик может иметь (3 3 4) и будет стипуха, тогда берем сумму rst.Fields(1)+rst.Fields(2)+rst.Fie lds(3), если она > 9 тогда стипуха - 1000.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 04.05.2016 в 21:49.
Aleksandr H. вне форума Ответить с цитированием
Старый 05.05.2016, 16:40   #3
Satana94
 
Регистрация: 27.04.2016
Сообщений: 8
По умолчанию База с экселем

Вот )
Вложения
Тип файла: rar Стипендия.rar (30.3 Кб, 16 просмотров)
Satana94 вне форума Ответить с цитированием
Старый 05.05.2016, 19:17   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

И че? Какой ответ должен получиться для этого входного набора данных?
Код:
Sub aaa()
    Dim cnn As New ADODB.Connection
    Dim rst As ADODB.Recordset
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= D:\Стипендия\Студент.mdb"
    Set rst = New ADODB.Recordset
    With rst
        .CursorLocation = adUseServer
        .Open "Select * from Студенты", cnn, adOpenKeySet, adLockOptimistic
        k = 1
        .MoveFirst
        Do

            If .Fields(1) = 2 Or .Fields(2) = 2 Or .Fields(3) = 2 Then
                s = 0
            ElseIf .Fields(1) + .Fields(2) + .Fields(3) > 9 Then
                s = 1000
            End If
            Cells(k, 1) = .Fields(0)
            Cells(k, 2) = s
            .MoveNext
            k = k + 1
        Loop Until .EOF
    End With
    Set rst = Nothing
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 05.05.2016, 19:38   #5
Satana94
 
Регистрация: 27.04.2016
Сообщений: 8
По умолчанию Ответ

Троечникам при наличии 4 или 5 - базовая. Базовая =1000р.
Ударникам при наличии не менее двух пятерок - надбавка 20%
Отличникам - 30 %
Если есть двойка, то стипендия не начисляется.

Про ответ я не знаю
Satana94 вне форума Ответить с цитированием
Старый 05.05.2016, 19:43   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

"Ударник" че за монстр такой?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 05.05.2016, 19:46   #7
Satana94
 
Регистрация: 27.04.2016
Сообщений: 8
По умолчанию

хорошист, то есть без троек
Satana94 вне форума Ответить с цитированием
Старый 05.05.2016, 20:16   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Satana94 Посмотреть сообщение
Про ответ я не знаю
То есть ты не можешь сказать какая стипендия должна быть для каждого из списка?
Цитата:
Абдуллин 5 5 5
Исламов 4 4 4
Аршавин 5 5 4
Исламова 5 4 3
Тимощук 5 4 3
Лодыгин 2 3 3
Морозов 5 5 5
Зарипов 5 5 5
Баруллин 2 3 2
Ткачев 5 5 5
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 05.05.2016, 20:44   #9
Satana94
 
Регистрация: 27.04.2016
Сообщений: 8
По умолчанию

Какая стипендия для каждого из списка ,я знаю. Не знаю, как реализовать это в программе.
Satana94 вне форума Ответить с цитированием
Старый 05.05.2016, 20:57   #10
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Так напиши для каждого!! Ето нужно для проверки
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать setup при наличии ссылок? dim3740 C# (си шарп) 1 18.04.2014 12:37
При переносе данных в Excel, преобразует число в дату, если разделитель – точка. qsn Microsoft Office Excel 5 18.03.2013 19:25
Не работает FormKeyPress при наличии на форме кнопки munthrekosh Общие вопросы Delphi 2 21.02.2012 18:34
Запрет запуска программы на VBA в случае если Excel уже открыт kovalevskivf Microsoft Office Excel 4 01.09.2009 11:22
Небольшая работа (1000р) Excel magellan Фриланс 3 13.01.2008 19:18