Едно 'интелигентно' комбо...

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

Едно 'интелигентно' комбо...

Отскоро се занимавам с Аксес и искам да питам разбирачите...

Телефона ми е задръстен с номера и гледам да ги поразчистя малко.
Но понеже съм сантиментален и реших да го направя в база данни на аксес - да имам за всеки случай и бившите номера на познатите, та ако някой реши да се гъбарка с мен :))

Правя си нещо като GSM указател, общо взето основните таблици са:

Friends
FriendID
Name
Family
Birthdate
и т.н.

GSMNumbers
GSMNumberID
FriendID
Number
FirstDate
Description
и т.н.

Messages
MessageID
GSMNumberID
Message
Date
Time
и т.н.

Създал съм формички за въвеждане на данните.
Във формата за попълване на съобщенията съм сложил комбо поле което извлича Friends.Name. Искам обаче когато го променя (избера приятел) в друго комбо да се показват само номерата на конкретният избран приятел. Т.е. след промяна в комбо полето да се стартира нещо като:

SELECT GSMNumbers.GSMNumberID, GSMNumbers.GSMNumber FROM GSMNumbers,? WHERE GSMNumbers.FriendID=стойноста на току-що промененото комбо1;

т.е. трябва в комбото да ми се покажат номерата на познатия като текст, и след избор на конкретен номер, в таблицата се записва неговото ID

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

Re: Едно 'интелигентно' комбо...

В комбобокса на номерата в полето RowSource поставяш точно както си го описал
SELECT GSMNumbers.GSMNumberID, GSMNumbers.GSMNumber FROM GSMNumbers WHERE GSMNumbers.FriendID= Form1.FriendID;
На събитието AfterUpdate на FriendID поставяш рефреш и готово.
Втория начин е подобен - оставяш RowSource празно и на AfterUpdate пишеш
me.GSMNumberID.RowSource ="SELECT GSMNumbers.GSMNumberID, GSMNumbers.GSMNumber FROM GSMNumbers WHERE GSMNumbers.FriendID= " & Form1.FriendID
съответно ще промениш името на Form1 с твоето име на форма.
Успех :)

Отговор