Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VBA for Access

Модерирует : ShIvADeSt

ShIvADeSt (14-09-2011 00:58): Все обсуждение тут http://forum.ru-board.com/topic.cgi?forum=33&topic=0357&start=1180  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

   

filemoto



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dixi257
Дружище, выручай...
Помнишь ты както высылал мне пример БД, где при выборе категории, комбобокс подкатегории отображал только записи принадлежащие категории.
Плиз, злобный вирь погрыз комп... всё что мог спас, а твой пример на рабочем столе лежал, а со стола ничего не спас...  
попытался скачать со слил.ру, куда ты его помещал, но файл уже недоступен.
Может у тебя осталась копия?
Как ты это делал, можешь вспомнить?

Всего записей: 132 | Зарегистр. 08-04-2006 | Отправлено: 13:17 20-03-2007
Dixi257



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gorthaur

Цитата:
и организовать изменение/добавление/удаление и т.д. данных

Хм... Я конечно опять не в кассу... Но, складывается впечатление, что ты делаешь универсальный просмотрщик/редактор баз данных. Тут бы хорошо использовать какой-будь "Грид"-контрол. Тот же самый мелкомягкий грид можно попробывать, та очень гладко на ходу можно поля добавлять, и редактировать в нем достаточно удобно. Ну и еще куча коммерческих гридов весьма навороченных есть. На счет бесплатных, затрудняюсь...

Всего записей: 128 | Зарегистр. 24-08-2005 | Отправлено: 21:16 20-03-2007
gorthaur

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dixi257
В том-то и дело, что из бесплатных ничего хорошего не нашел. К тому же гораздо лучше в моём случае пойдёт представление в анкетной форме (т.е. контролы располагаются вертикально). Да, это универсальный просмотрщик/редактор с некоторыми дополнительными свойствами. Проблема только в том, что я до этого Access и Basic вообще в глаза не видел А после C++ как-то не очень идёт.

Всего записей: 23 | Зарегистр. 05-01-2007 | Отправлено: 09:20 21-03-2007
Dixi257



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gorthaur
Так, а задачу обязательно реализовывать в Access, может быть сделать отдельный самодостаточный (зависящий от системных DLL) экзешник? Можно на VB (не путалть с VBA). Чем же и CPP не приглянулся для таких целей? Тем более, что надо то всего строку подключения сформировать для JET драйвера, если речь идет только о базах .MDB
По поводу реализации на VB или CPP пиши на ящик, подскажу что смогу.

Всего записей: 128 | Зарегистр. 24-08-2005 | Отправлено: 12:15 21-03-2007
gorthaur

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dixi257
Да я бы сам с удовольствием на С++ написал, только меня никто не спрашивал Все равно спасибо за предложение

Всего записей: 23 | Зарегистр. 05-01-2007 | Отправлено: 14:56 21-03-2007
filemoto



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dixi257
Привет!
Скажи, тебе удалось что-то сделать с той БД?

Всего записей: 132 | Зарегистр. 08-04-2006 | Отправлено: 12:06 26-03-2007
filemoto



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dixi257
благодарю.
 
вопрос в студию: кидаю на форму два текстбокса.
как заставить в одном отображать количество записей в определённой таблице, а во втором текстбоксе, количество записей с применением фильтра по одному из полей? например, количество записей в которых поле статус = "Готово"?
 

Всего записей: 132 | Зарегистр. 08-04-2006 | Отправлено: 18:45 01-04-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Dixi257 это просто
=DCount("code_item";"Tree")
=DCount("code_item";"Tree"; "dir = 0")
 
если присваивать через окно "свойства". все параметры - строковые (подробности в справке). там же ещё куча подобыных функций, типа DSum, Dmax и очень полезная - DLookup
 

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 09:40 02-04-2007 | Исправлено: jONES1979, 09:44 02-04-2007
filemoto



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jONES1979
это наверное предназначалось для меня.
спасибо. помогло.
 
скажите, а как отследить смену записи на форме?
т.е. к примеру форма отображает запись номер один, у меня в пикчербоксе отображается картинка соответствующая номеру записи. потом перехожу на вторую запись, а картинка не изменяется, хотя этой записи соответствует другая картинка. так вот как заставить пикчербокс реагировать на смену записей?

Всего записей: 132 | Зарегистр. 08-04-2006 | Отправлено: 12:44 02-04-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
filemoto

Цитата:
как отследить смену записи на форме?  
событие формы "Текущая запись" Form_Current()
 
что значит записи соответсвует? для blob-полей с картинками из БД есть контрол с названием "Присоединённая рамка объекта" представляющая из себя OLE-контейнер.
...если же просто разные картинки, из файлов к примеру, то  

Код:
Private Sub Form_Current()
 if  условие then  
    Me.Рисунок296.Picture ="C:\Picture Files\Logo2.gif"
      else    
    Me.Рисунок296.Picture ="C:\Picture Files\Logo1.gif"
 end if
End Sub

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 22:06 02-04-2007 | Исправлено: jONES1979, 22:08 02-04-2007
filemoto



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jONES1979
вот, вот... именно поле ОЛЕ. там у меня есть рисунок jpg.
можно ли его в эту присоединённую рамку объекта выводить?

Всего записей: 132 | Зарегистр. 08-04-2006 | Отправлено: 10:29 03-04-2007
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
filemoto
Поставть Access с примерами - да и посмотри в
"C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Борей.mdb"

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 11:04 03-04-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
filemoto
я тоже  столкнулся с тем, что эта самая "пр.рамка.объекта" не отрисовывает jpg только отображает иконку, хотя как положено, считывает их(данные) из БД для каждой записи соответственно. В этом можно убедиться даблкликнув по ней...
С  bmp таких - проблем нет.
 
ситуация у меня наблюдалась в Access XP и Access 2003. В 2007 -ом не проверял
 

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 15:13 03-04-2007
filemoto



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jONES1979
там не так просто её отрисовать. стандартно, акцесс, может отрисовать только BMP и DIB, вродебы, из поля ОЛЕ(с 2003 ещё поддерживается GIF, а может и с 2000-го). фукции конверта JPG из ОЛЕ нету. я находил пример отображения, там несложный код, но что-то не могу отыскать теперь. там, если не ошибаюсь было PictureFromBits

Всего записей: 132 | Зарегистр. 08-04-2006 | Отправлено: 13:43 04-04-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
filemoto
Ну вот и я про тоже  Если найдешь код  - делись

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 14:15 04-04-2007
pit23



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. А можно ли в VBA программно послать экселевский файл  на печать?
Заранее благодарен за любую оказанную помощь.

Всего записей: 60 | Зарегистр. 04-03-2006 | Отправлено: 12:44 22-08-2007 | Исправлено: pit23, 13:46 22-08-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pit23

Код:
 
Private Sub Кнопка0_Click()
On Error GoTo Err_Кнопка0_Click
 
    Dim oApp As Object
 
 
    Set oApp = CreateObject("Excel.Application")
    oApp.Visible = False
 
    On Error Resume Next
 
    oApp.Workbooks.Open Filename:="C:\My documents\Контроль.xls"
    oApp.ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    oApp.Quit
 
Exit_Кнопка0_Click:
    Exit Sub
 
Err_Кнопка0_Click:
    MsgBox Err.Description
    Resume Exit_Кнопка0_Click
     
End Sub
 

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 20:23 23-08-2007 | Исправлено: jONES1979, 20:30 23-08-2007
bibitaxi

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги! А не знаете, где будет искать БД метод OpenDatabase, если полный путь не указан, а только имя файла?

Всего записей: 1 | Зарегистр. 28-08-2007 | Отправлено: 11:26 05-09-2007
Dixi257



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bibitaxi
  Обычно в Моих Документах ищет. Думаю, это есть где-нибудь в настройках

Всего записей: 128 | Зарегистр. 24-08-2005 | Отправлено: 15:42 05-09-2007
Bagira3785

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Ребят, кто подскажет? У меня есть база по начислению зарплаты, но никак не получается одна штука. В форме есть поле СумОклад, есть список СписокНачислениеОклад, созданный на основе таблицы Начисление2.  
В форме источник записей я указала SELECT Начисление2.* FROM Начисление2;  
Таблица Начисление2:КодНачисление (счетчик), Месяц, Год, КодПлан (числовой), КодРаботник(числовой), Оклад (числовой)  
В форме есть кнопка ИзменитьОклад, есть элемент SpinButton.1- КнСумОклад. Нужно, чтобы щелкая двойным щелчком в списке, в этом списке значение в поле оклад изменилось на значение которое будет введено в поле СумОклад. Если нажать на кнопку ИзменитьОклад, то выделялся бы весь список и так же изменялось бы значение в поле оклад. А еще как сделать так, чтобы в списке можно было бы выделять несколько записей и так же изменять оклад на то значение, которое стоит в поле СумОклад? Я вот тут кое-чего наворочала, но видно неправильно:  
 
Private Sub Form_Open(Cancel As Integer)  
 
    'Если СписокНачислениеОклад пуст -  
    If СписокНачислениеОклад.ListCount = 0 Then  
        'закрыть доступ к изменению оклада  
        ДоступОклад False  
    Else  
        'иначе - открыть доступ к изменению оклада,  
        ДоступОклад True  
        'выделить 1-ю строку списка  
        СписокНачислениеОклад = СписокНачислениеОклад.Column(0, 0)  
    End If  
     
End Sub  
Private Sub СумОклад_Exit(Cancel As Integer)  
On Error Resume Next  
Dim N As Long  
 
    'Проверка корректности ввода  
    N = CLng(СумОклад.Text)  
    'Если введено не число или запредельное значение  
    If (Err.Number <> 0) Or (N < КнСумОклад.Min) Or (N > КнСумОклад.Max) Then  
        'сообщаем об этом  
        MsgBox "Введите число в диапазоне от " & CStr(КнСумОклад.Min) & " до " _  
                & CStr(КнСумОклад.Max), vbExclamation, "Ошибка ввода"  
        'Очищаем объект Err и возвращаемся в поле "СумОклад"  
        Err.Clear  
        Cancel = True  
    Else  
        'При корректном вводе поручаем обработку ошибок системе  
        On Error GoTo 0  
        'и меняем оклад  
        ИзменитьОклад  
        КнСумОклад.Value = СумОклад  
    End If  
     
End Sub  
 
Private Sub СписокНачислениеОклад_DblClick(Cancel As Integer)  
Dim База As Object, Начисление2 As Object  
       
    Set База = CurrentDb  
    Set Начисление2 = База.OpenRecordset("Начисление2", dbOpenDynaset)  
   ДоступОклад True  
   With Начисление2  
        'Ищем соответствующую запись в таблице Начисление2.  
        .FindFirst "[КодПлан] = " & CStr(СписокНачислениеОклад)  
            КнСумОклад = СумОклад  
            .Edit  
            ![Оклад] = СумОклад  
            .Update  
           СписокНачислениеОклад.Requery  
           Me.Requery  
         
      .Close  
End With  
Set База = Nothing  
   
End Sub  
 
Private Sub ИзменитьОклад()  
Dim База As Object, Начисление2 As Object  
 
    Set База = CurrentDb  
    Set Начисление2 = База.OpenRecordset("Начисление2", dbOpenDynaset)  
    With Начисление2  
        .FindFirst "[КодПлан] = " & CStr(СписокНачислениеОклад)  
        .Edit  
        ![Оклад] = СумОклад  
        .Update  
        СписокНачислениеОклад.Requery  
        Me.Requery  
        .Close  
    End With  
    Set База = Nothing  
 
End Sub  
 
Private Sub ДоступОклад(Доступ As Boolean)  
    КнСумОклад.Enabled = Доступ  
    СумОклад.Enabled = Доступ  
End Sub  
Может у кого есть что-то похожее по сути, может быть вышлете на адрес:UchBagira@yandex.ru  
 
--------------------------------------------------------------------------------
 
 
 

Всего записей: 7 | Зарегистр. 01-10-2007 | Отправлено: 20:29 05-10-2007 | Исправлено: Bagira3785, 21:16 05-10-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VBA for Access
ShIvADeSt (14-09-2011 00:58): Все обсуждение тут http://forum.ru-board.com/topic.cgi?forum=33&topic=0357&start=1180


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru