Sha.man писал(а):Например, в Excel функция =если(...;...;...). Как можно заменить её в VB6? Я понимаю, что в двух словах не объяснить, поэтому просто подскажите, где почитать. Просто весь построен на динамических списках, которые используют функции ЕСЛИ и ВЫБОР. Теперь мне нужно узнать, как можно реализовать то же самое в VB6.
iGrok писал(а):... аналога "ВЫБОР" нет...
Ну так и сделай это на основе таблиц базы данных и соответствующих запросов. Более конкретно нельзя сказать, так как задача вообще не ясна.Sha.man писал(а):т.е. мне нужно создать динамический список, который будет меняться в зависимости от выбора контрольного значения в комбобоксе.
Template писал(а):VB функция Choose
ger_kar писал(а):Эмулировать в VB6 работу Excel это будет нечто. Нужно вообще абстрагироваться от Excel и решать задачу другими методами.
ger_kar писал(а):Ну так и сделай это на основе таблиц базы данных и соответствующих запросов.
который работает с прайс-листом
Dim Ex As Object, WB As Object, M()
Set Ex = CreateObject("Excel.Application")
Set WB = Ex.Workbooks.Open(App.Path & "\x.xls")
M = WB.Worksheets(1).UsedRange.Value
WB.Close
Set Ex = Nothing
Private Sub Form_Load()
'Формирование списка показа в окне выбора Типа материалов
Combo1.AddItem "баннер"
Combo1.AddItem "ceткa"
Combo1.AddItem "бyмaгa"
Combo1.AddItem "пленка"
Combo1.AddItem "пластик"
End Sub
Private Sub Combo1_Change()
'Формирование списка показа в окне выбора Вида материалов
'Здесь должно в силу вступать условие IF: если выбор "баннер", то должны добавиться значения "330", "440", "510", "550", "транслюцентный",
'если "пленка", то - "глянцевая", "матовая", "прозрачная", "перфорированная", и т.д....
End Sub
Ну тут видишь ли нет такого определенного источника, прочитав который можно сразу прозреть и всему научится, как правило знания получаются по крупицам и из разных источников. Например чтобы нормально работать с базами данных нужно помимо самого VB как такового знать еще кучу всего. Например нужно будет изучить язык SQL и одну из технологий доступа к данным DAO, либо ADO. Лучше конечно сразу ADO. Кроме общих знаний языка SQL необходимо будет изучить особенности взаимодействия с конкретной СУБД, ибо в работе с различными СУБД имеются существенные различия. Далее даже зная все эти вещи, но не имея представления о проектировании баз данных ничего путнего сразу не создашь. Ну конечно простейшие вещи написать можно, но более менее что то серьёзное создать будет уже проблематично. И тут уже у каждого свой путь. В т.ч. и путем набивания шишек. Так как просто прочитать нужную книжку и сразу прозреть не получится. Даже к оформлению кода наименованиям переменных, объектов и т.д. тоже существуют разные подходы.Sha.man писал(а):да я бы рад, но не знаю как! поэтому и спрашиваю: где можно почитать? я-то, конечно, и сам найду, но думал, что народ тут подскажет хороший, проверенный источник для получения знаний.
Public Sub FillCombo(oComboBox As Control, oConnection As ADODB.Connection, sTable As String, sField As String)
'#[in] oComboBox 'Объектная ссылка на контрол, который нужно заполнить
'#[in] oConnection 'Активное подключение к базе данных
'#[in] sTable 'Таблица и
'#[in] sField 'поле таблицы из которых берется список для заполнения
Dim oRS As ADODB.Recordset 'Временный рекордсет открываемый на время заполнения
On Error Resume Next
Set oRS = New ADODB.Recordset
With oRS
.CursorLocation = adUseClient
.LockType = adLockReadOnly
.CursorType = adOpenForwardOnly
.Open sTable, oConnection
If Not (oRS.BOF Or oRS.EOF) Then
Do Until oRS.EOF
oComboBox.AddItem .Fields(sField).Value
oRS.MoveNext
Loop
End If
.Close
End With
Set oRS = Nothing
End Sub
ger_kar писал(а):Ну тут видишь ли нет такого определенного источника, прочитав который можно сразу прозреть и всему научится, как правило знания получаются по крупицам и из разных источников.
ger_kar писал(а):Например нужно будет изучить язык SQL и одну из технологий доступа к данным DAO, либо ADO. Лучше конечно сразу ADO. Кроме общих знаний языка SQL необходимо будет изучить особенности взаимодействия с конкретной СУБД, ибо в работе с различными СУБД имеются существенные различия.
ger_kar писал(а):Любое изменение данных будет приводить к переделке приложения и его перекомпиляции, что есть неправильно.
Private Sub Form_Load()
'Формирование списка показа в окне выбора Типа материалов
Combo1.AddItem "баннер" ' 0
Combo1.AddItem "ceткa" ' 1
Combo1.AddItem "бyмaгa" ' 2
Combo1.AddItem "пленка" ' 3
Combo1.AddItem "пластик" ' 4
End Sub
Private Sub Combo1_Click()
Combo2.Clear
Select Case Combo1.ListIndex
Case 0
Combo2.AddItem 330
Combo2.AddItem 440
Combo2.AddItem 510
Combo2.AddItem "транслюцентный"
Case 1
Case 2
Case 3
Combo2.AddItem "глянцевая"
Combo2.AddItem "матовая"
Combo2.AddItem "прозрачная"
Combo2.AddItem "перфорированная"
Case 4
End Select
End Sub
a=Split(CreateObject("Scripting.FileSystemObject").Getfile(Name).OpenasTextStream(1).ReadAll, vbNewLine)
alex77755 писал(а):Если всё фиксировано, то можно и просто кодом заполнить не подключаясь ни к каким базам
alex77755 писал(а):Если списки комбей могут меняться, то, в принципе, ничто не мешает держать эти списки в простых текстовых файлах рядом с программой.
Оно то конечно можно, но по сути, что делать с хранением в текстовых файлах, что с хранением в базе данных, трудозатраты на составление программы будут примерно одинаковыми, но хранение в базе данных обладает рядом преимуществ. Это и контроль вводимых значений, это и сортировка с группировкой, поддержание целостности данных и т.д. И результаты расчетов можно тут же сохранить и вести их историю, да и еще много чего можно сделать. По началу может показаться, что быстрее сделать с хранением в простых текстовых файлах, но когда захочется сделать нечто большее окажется, что реализация с хранением в текстовых файлах окажется более трудоемкой, запутанной и замороченной.alex77755 писал(а):Если списки комбей могут меняться, то, в принципе, ничто не мешает держать эти списки в простых текстовых файлах рядом с программой.Редактировать их можно не перекомпилируя программу, а просто блокнотом.А программка будет их считывать
ger_kar писал(а): но хранение в базе данных обладает рядом преимуществ. Это и контроль вводимых значений, это и сортировка с группировкой, поддержание целостности данных и т.д. И результаты расчетов можно тут же сохранить и вести их историю, да и еще много чего можно сделать.
alex77755 писал(а):Если бы это была серьёзная база, то вопросов нет, а 4-5 записей проще обойтись без тяжелой артилерии
Ну вообще в наше время с проблемами парковки и пробками лучше и быстрее всего как раз на велике, а если учесть, что для поездки не надо тратится на бензин, а сама поездка очень полезна для здоровья, то тогда вообще велик - лучший транспорт . Но это так лирическое отступление.Sha.man писал(а):Можно и белазе за хлебушком смотаться, а можно и на велике. Но на белазе лучше: У него и проходимость лучше. И грузоподьёмность.
А у меня - использовать принцип разумной достаточности.alex77755 писал(а):Моё кредо такое: Выбирать минимальные средства обеспечивающие заданные требования.
Вот как раз для такого случая MS JET самое то. А вся автоматика реализуется на уровне приложения ровно в том объеме, который будет нужен на данный момент и возможность роста (то бишь возможность наворотить велик) сохраняется и затрат нет.alex77755 писал(а):А зачем брать слжную автоматику если функции ктоторые она может выполнять никому не нужны. Но для её облуживания потребуются специалисты более высокого уровня. Да и затраты на приобретение и обслуживание намного больше.
Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 69