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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

AlexeiKozlov

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bagira3785
у тебя пока одна проблема,нету противоречия. в чем тебе помочь,поэтому не понятно.сформируй противоречие.код как код.помочь с идеей? слишком долго.давай потрудись над формуливкой противоречия.

Всего записей: 2211 | Зарегистр. 16-10-2004 | Отправлено: 21:42 05-10-2007
Bagira3785

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexeiKozlov
Просто это не хочет работать. Может тебе выслать пример базы, чтобы понять в чем проблема? Тогда куда выслать?

Всего записей: 7 | Зарегистр. 01-10-2007 | Отправлено: 21:41 06-10-2007
AlexeiKozlov

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bagira3785
так что не хочет работать? выдели участик кода,которым предназначено чтото сделать,и напиши что они на самом деле делают.пойми одно.я пойму,когда ты дашь понять.а самому мне понимать не охото.
 
Добавлено:
или приходи на sql.ru там раздел ms access. там ты найдешь ,того кто захочет посмотреть файл твой,понять,помочь

Всего записей: 2211 | Зарегистр. 16-10-2004 | Отправлено: 22:55 06-10-2007
agro

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
здрасте
 
вот такая ситуация есть таб Visit в ней разные поля ...
1 из них Complaints - тип Memo
есть таб complaintOrigin (там у меня варианты для подстановки в поле Compliants)
 
нужно сделать так чтобы при щелчке в форме Visit в поле Compliants открывалось  
что-то(форма) позволяющее отобразить все варианты из compliantOrigin и САМОЕ главное по щелчку мыши в списке то на чём щёлкаешь переносилось в поле Compliant
 
т.е. должна формироваться текстовая строка из заготовок хранящихся в таб compliantOrigin
 
-----------------------------------------
обработать клик в поле я умею уже
но какое событие возникает при щелчке на конретной записи не знаю и возникает ли вообще
 
могу выслать имеющийся кусок базы с этими таб
 

Всего записей: 18 | Зарегистр. 12-02-2006 | Отправлено: 14:29 18-10-2007 | Исправлено: agro, 14:33 18-10-2007
a22ntaque

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите, пожалуйста:
 
какой функцией можно узнать windows логин юзера?
какой функцией можно узнать сетевой логин юзера?
 
Application.CurrentUser возвращает access login (в моем случае "admin")

Всего записей: 5 | Зарегистр. 23-10-2007 | Отправлено: 14:18 25-10-2007
jONES1979



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

Код:
 
  Set objNetwork = CreateObject("Wscript.Network")
   
  MsgBox objNetwork.UserDomain
  MsgBox objNetwork.UserName
 

гугли на тему "Windows Scripting Host"  
или смотри здесь http://www.askit.ru/custom/vba_excel/lab/lab13_01_objects.htm

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 14:36 25-10-2007
a22ntaque

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
супер! спасибо!

Всего записей: 5 | Зарегистр. 23-10-2007 | Отправлено: 15:49 25-10-2007
Bagira3785

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожайлуста, как записать в коде, чтобы при перебросе данных из одной таблицы в другую отрицательное число преобразовывалось в положительное? Мне нужно, чтобы из СпДолги поле СумРУБ, где число отрицательное, в таблице   ВзятиеВыплатОбщая в поле СуммРУБ оно становилось положительным.
Код такой:
Private Sub СпДолги_DblClick(Cancel As Integer)
Dim База1 As Object, ВзятиеВыплатОбщая As Object
     
    Set База1 = CurrentDb
    Set ВзятиеВыплатОбщая = База1.OpenRecordset("ВзятиеВыплатОбщая", dbOpenDynaset)
   
    With ВзятиеВыплатОбщая
        'Ищем соответствующую запись в таблице ВзятиеВыплатыОбщая.
        .FindFirst "[КодДолг] = " & CStr(СпДолги)
        'Если в таблице ВыплатыОбщая отсутствует соответствующая запись -
        If .NoMatch Then
            'добавляем запись.
            .AddNew
            ![КодДолг] = СпДолги
            ![КодРаботник] = СпДолги.Column(1)
            ![КодСписок] = СпДолги.Column(3)
            ![Месяц] = СпДолги.Column(2)
            ![Год] = СпДолги.Column(4)
            ![СуммаРУБ] = СпДолги.Column(5)
            ![Перенести] = True
            .Update
             
            СпВыплатыОбщая.Requery
            Me.Requery
            СпВыплатыОбщая = СпДолги
            'СпВыплатыОбщая_AfterUpdate
       
        End If
        .Close
    End With
    Set База1 = Nothing
 
End Sub
Может кто подскажет? Очень нужно.

Всего записей: 7 | Зарегистр. 01-10-2007 | Отправлено: 21:27 21-11-2007 | Исправлено: Bagira3785, 21:30 21-11-2007
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bagira3785
Есть такая функция в VBA Abs - возвращает абсолютное значение числа (то есть положительное

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 05:49 22-11-2007
Bagira3785

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndVGri
Спасибо за подсказку, все работает.

Всего записей: 7 | Зарегистр. 01-10-2007 | Отправлено: 18:29 22-11-2007
Bagira3785

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как в коде записать отмену действия нажатия кнопки, если, например, выполняется условие, при котором нужно отменить дальнейшее выполнение. В данном случае, кнопка выполняет запрос на добавление. Вообще это реально? Я пробовала записать так:
Private Sub КнДобДолги_Click()
 On Error GoTo Err_КнДобДолги_Click
 
 If [КодСписок] > 0 Then
 КнДобДолги_Exit  
 End If
     
    Dim stDocName As String
 
    stDocName = "Запрос6"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
 
Exit_КнДобДолги_Click:
    Exit Sub
 
Err_КнДобДолги_Click:
    MsgBox Err.Description
    Resume Exit_КнДобДолги_Click
End Sub  
Но при выполенении вваливаюсь в редактор и выделяется КнДобДолги_Exit  и выдает, что это не применимо.

Всего записей: 7 | Зарегистр. 01-10-2007 | Отправлено: 17:14 23-11-2007
AlexeiKozlov

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bagira3785
вот что вам не пришлось на том форуме
 
у тебя метка
  If [КодСписок] > 0 Then
-> КнДобДолги_Exit  
 End If  
называеться иначе чем ,метка  Err_КнДобДолги_Click ,имена должны быть одинаковы.
просто я перестал понимать людей,которые методом тыка пробуют. ведь сейчас ж книжек электронных выше крыши. на nnm.ru даже дофига книг русских,как программить в access.

Всего записей: 2211 | Зарегистр. 16-10-2004 | Отправлено: 21:11 23-11-2007
apexfmm



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

Цитата:
на nnm.ru даже дофига книг русских,как программить в access

 3 устаревших ссылки
лучше уж идти сюда http://www.spam_detected/ + поиск ACCESS

----------
-Если вы не испытываете желания преступить хоть одну из десяти заповедей - значит, с вами что-то не так
[WINXP SP3eng, Intel P75, CoreDuoE7400 2.8GHz, 2Gb DDR2, Radeon HD4830]

Всего записей: 782 | Зарегистр. 28-04-2005 | Отправлено: 17:30 24-11-2007 | Исправлено: apexfmm, 04:21 25-11-2007
Bagira3785

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexeiKozlov
Спасибо за подсказку, попробую. У меня много книг по ассеss, действительно, там много есть чего интересного, но то что мне нужно, как назло не описано. И еще, вроде находишь, что надо, а когда применишь к своему случаю, ничего не выходит.
Еще раз спасибо за помощь.

Всего записей: 7 | Зарегистр. 01-10-2007 | Отправлено: 21:52 25-11-2007
Solnishka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди!  
Помогите пожалуйста кто чем сможет (очень надо - диплом горит).  
В программировании я прям скажем новичок.  
Есть проблема:  
готовую программу на VBA для расчёта амортизации нужно переписать под Excel.  
Я уже бьюсь над ней довольно долго и никак не получается.  
 
 
[more]  
Option Compare Database  
Option Explicit  
Dim dblПервичнаяСтоимость As Double  
Dim dblОстаточнаяСтоимость As Double  
Dim intВремяАмортизации As Integer  
Dim intПериодРасчета As Integer  
Dim intКратность As Integer  
Dim blnПризнак As Boolean  
Dim dblВеличинаАмортизации As Double  
Private Sub Form_Load()  
Поле1.SetFocus  
Поле1.Text = ""  
Поле2.SetFocus  
Поле2.Text = ""  
Поле3.SetFocus  
Поле3.Text = ""  
Поле4.SetFocus  
Поле4.Text = ""  
Поле5.SetFocus  
Поле5.Text = ""  
Поле6.Visible = True  
Поле6.SetFocus  
Поле6.Text = ""  
Переключатель1.Value = True 'Включение стандартного метода расчета  
Переключатель2.Value = False 'Отключение метода расчета с кратностью  
Надпись9.Visible = False 'Скрытие надписи  
Поле1.SetFocus  
Поле6.Visible = False 'Скрытие поля  
End Sub  
 
Private Sub Кнопка1_Click()  
blnПризнак = True  
Поле1.SetFocus  
If Поле1.Text = "" Then blnПризнак = False  
Поле2.SetFocus  
If Поле2.Text = "" Then blnПризнак = False  
Поле3.SetFocus  
If Поле3.Text = "" Then blnПризнак = False  
Поле4.SetFocus  
If Поле4.Text = "" Then blnПризнак = False  
If blnПризнак = False Then  
MsgBox " Недостаточно данных для расчета", vbExclamation, "Амортизация"  
Exit Sub  
End If  
Поле1.SetFocus  
dblПервичнаяСтоимость = CDbl(Поле1.Text)  
Поле2.SetFocus  
dblОстаточнаяСтоимость = CDbl(Поле2.Text)  
Поле3.SetFocus  
intВремяАмортизации = CInt(Поле3.Text)  
Поле4.SetFocus  
intПериодРасчета = CInt(Поле4.Text)  
If dblПервичнаяСтоимость < dblОстаточнаяСтоимость Then  
MsgBox " Ошибка! Остаток больше начальной стоимости!", _  
vbExclamation, "Амортизация"  
Поле1.SetFocus  
Exit Sub  
End If  
If intВремяАмортизации < intПериодРасчета Then  
MsgBox " Ошибка в сроке амортизации!", _  
vbExclamation, "Амортизация"  
Поле3.SetFocus  
Exit Sub  
End If  
If Переключатель1.Value = True Then  
blnПризнак = True  
Else  
blnПризнак = False  
End If  
If blnПризнак = True Then  
dblВеличинаАмортизации = SYD(dblПервичнаяСтоимость, _  
dblОстаточнаяСтоимость, intВремяАмортизации, intПериодРасчета)  
Else  
Поле6.SetFocus  
intКратность = CInt(Поле6.Text)  
dblВеличинаАмортизации = DDB(dblПервичнаяСтоимость, _  
dblОстаточнаяСтоимость, intВремяАмортизации, intПериодРасчета, intКратность)  
End If  
Поле5.SetFocus  
Поле5.Text = CStr(dblВеличинаАмортизации)  
End Sub  
 
Private Sub Кнопка22_Click()  
Dim strFrm As String  
strFrm = "Расчет Амортизации"  
DoCmd.Close acForm, strFrm  
End  
End Sub  
 
Private Sub Переключатель1_Click()  
Переключатель2.Value = False  
Надпись9.Visible = False  
Поле6.Visible = False  
End Sub  
 
Private Sub Переключатель2_Click()  
Переключатель1.Value = False  
Надпись9.Visible = True  
Поле6.Visible = True  
Поле6.SetFocus  
'Поле6.Text = ""  
Поле6.Value = ""  
End Sub  
[/more]  

Всего записей: 3 | Зарегистр. 23-11-2007 | Отправлено: 22:32 25-11-2007
hellslade

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем здрасте!
столкнулся с такой проблемой:
в Access 2007 создаю форму и необходимо сделать следующее: при нажатии клавиши F8 текущая запись должна удаляться! пробовал в свойствах поля писать обработку на событие "Нажатие клавиши", но в ней, как я понял, не обрабатываются "эфки"
подскажите, кто знает, как быть? спасибо!

Всего записей: 4 | Зарегистр. 10-12-2007 | Отправлено: 08:23 10-12-2007
dneprcomp



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

Код:
Private Sub Form_Load()
    Me.KeyPreview = True
End Sub
 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)    'or Private Sub Form_KeyUp
    Select Case KeyCode
        Case vbKeyF2
            ' Process F2 key events.
        Case vbKeyF3
            ' Process F3 key events.
        Case vbKeyF8
            ' Process F8 key events.
        Case Else
    End Select
End Sub
 

Всего записей: 3923 | Зарегистр. 31-03-2002 | Отправлено: 06:12 11-12-2007 | Исправлено: dneprcomp, 06:13 11-12-2007
hellslade

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Спасибо, выручил, теперь работает!  
 
Добавлено:
dneprcomp
возникла еще одна проблемка
у аксеса на эфки забиндины стандартные функции (например на Ф7 проверка орфографии), можно это отключить в коде?
 
Добавлено:
Сделал так: KeyCode = 0
работает! ))))))
 
Добавлено:
Подскажите, пожалуйста.
Пишу удаление записи,
Код:
Private Sub Наименование_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim dbsCurr As Database
    Dim rstCurr As DAO.Recordset
         
    Select Case KeyCode
        Case vbKeyF8
                Set dbsCurr = Access.CurrentDb
                Set rstCurr = dbsCurr.OpenRecordset("&#206;&#240;&#227;&#224;&#237;&#232;&#231;&#224;&#246;&#232;&#232;")
         
                Do Until rstCurr.EOF
                    If rstCurr![Код] = Me.Код Then
                        rstCurr.Delete
                        [Form_Список проектов].Refresh
                        Exit Sub
                    End If
                    rstCurr.MoveNext
                Loop
        Case Else
    End Select
End Sub
 

 
 
Добавлено:
...все норм удаляет, а форму не обновляет. Пишет просто "#Удалено". как можно решить проблему?

Всего записей: 4 | Зарегистр. 10-12-2007 | Отправлено: 08:04 11-12-2007
BILIOUS



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть две формы: СписокКлиентов и ИнформацияОКлиенте. Нужно, чтобы по двойному клику в поле "Фамилия" открылась форма ИнформацияОКлиенте. Помогите, пожалуйста, исправить этот листинг(проблема в том, что тут требуется ввести фамилию ):

Код:
 
Private Sub Фамилия_DblClick(Cancel As Integer)
DoCmd.OpenForm "ИнформацияОКлиенте", acNormal, , "Фамилия=" & Фамилия
 
End Sub

Всего записей: 30 | Зарегистр. 28-01-2006 | Отправлено: 13:32 11-12-2007 | Исправлено: BILIOUS, 13:34 11-12-2007
hellslade

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как можно сделать такую вещь: в таблице есть поле "Затраты" оно должно автоматически вычисляться, но при должна быть возможность его изменить. я сделал вычисляемое поле и хотел на изменение этого поля повесить присваивание значения, но не могу понять почему событие не срабатывает!

Код:
 
Private Sub Поле35_AfterUpdate()
        If MsgBox("Realy?", vbYesNo) = vbYes Then
            Me.Затраты_план.Value = Me.Поле35.Value
        End If
End Sub
 

может использовать какое другое событие? я пробовал также события "Внесены изменения" и  "Изменение", но все без толку.
 
Добавлено:
и еще один вопросик. Как получить доступ к полям подчиненной формы?

Всего записей: 4 | Зарегистр. 10-12-2007 | Отправлено: 08:31 13-12-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