VBA - Access

3 отговора 155 прегледа
#1

VBA - Access

Nqkoi bi li mi obqsnil kak moga chrez VBA da upravlqvam kontrolite vyv forma na Access po sledniq nachin:

Kogato izbera stoinost ot combo-box v dadena forma, na drug combo-box da se prisvoqvat stoinostite svyrzani s izbranata ot pyrviq combo...Naprimer ako izbera ime na proekt ot tablica proekti, v sledvashtiq combo da mi se pokazvat zadachite samo ot tozi proekt ( te se izvlichat ot tablica TASKS)?

Отговор
в отговор на Pitanka #2

Re: VBA - Access

VBA значи? хмм...не би трябвало да се различава...много

while rs.eof <> true
if combo1.text = rs.fields(i).value then
combo2.text=rs.fields(i).value
end if
rs.movenext
wend
'където i ти е колоната в таблицата
' rs ти е recordset-a и трябва да го декларираш
'това е при условие ,че проекта и задачите ти са в една таблица

Отговор
в отговор на ToViDebne #3

Re: VBA - Access

Ne, ima edna tablica za proekta i negovite atributi i druga tablica za zadachite, koqto se vryzva s tablicata za proekti po Project ID(Primary key za Projects ) - to syshtestvuva i v dvete tablici...t.e v ramkite na edin proekt ima mnogo zadachi...Primary key za TASKS (tablicata sys zadachite) e Project ID+Task ID....V takyv sluchai?

Отговор
в отговор на Pitanka #4

Re: VBA - Access

Пич, изяснявай се малко по-точно.
В момента нямам нито VB, нито Access, но ще се опитам да ти помогна.
Значи ако съм разбрал правилно какъв ти е проблема, трябва да направиш следното. В първото комбо (за проектите) когато слагаш имената на проектите в свойството ItemData (мисля че така беше) слагаш и ID-то на проекта. Така когато юзера кликне ще го имаш наготово, а не да го търсиш пак.
И след това на свойството Click или Change (ти ще си прецениш по-добре) слагаш код подобен на този, който ти е дал колегата, за да ти запълни второто комбо. Обаче ще отвориш рекордсета с заявка SELECT, включваща INNER JOIN между двете таблици и WHERE клауза равна на ID-то на проекта (което вече имаш и ще вземеш от свойството ItemData на комбобокса). Така че да ти изтегли само тасковете, които са свързани към конкретния проект.
SELECT може и аксеса да ти го генерира, след като си му задал релейшъните между таблиците. Аз така правя.

Вярвам, че си ме разбрал!
А ако не си надявам се, че някой ще ти обясни и по-подробно.
Успех!

Бии, за да те уважават!
Отговор