|
Тема
|
MS Access i VB [
|
|
Автор |
American_boy (Pothead) |
Публикувано | 23.09.02 20:39 |
|
Zdraveite na vischki.
Imam edna form-a v Microsoft Access v koiato imam dve bounded text boxes koito sadargat tri-bukveni kodove za razlichni mashinni chasti.Ednata text box se naricha [type] a drugata se naricha [dia type].Iskam ako koda v [type] e ili "EBW" ili "Sub Arc",avtomatichno da popalnia "ARC" v [dia type]. Kogato probvam s prosto
If statement,kodat mi raboti samo za parviat record.Opitah s array da loop-na prez vsichki records,no poluchavam greshka.Eto kodat mi po-dolu,ako razbrahte neshto ot moite gluposti,pishete :)
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 134
[type].SetFocus
If InStr([type].text, "EBW") Then
Me![dia type].Visible = True
Me![dia type].Enabled = True
Me![dia type] = "ARC"
ElseIf InStr([type].text, "Sub Arc") Then
Me![dia type].Visible = True
Me![dia type].Enabled = True
Me![dia type] = "ARC"
Else
Me![dia type].Enabled = False
Me![dia type].Visible = False
End If
Next
End Sub
| |
Тема
|
Re: MS Access i VB [
[re: American_boy]
|
|
Автор | Ani (Нерегистриран) |
Публикувано | 26.09.02 10:00 |
|
Ако правилно съм разбрала, какво искаш да направиш - използвай update query, което да се изпълнява при on load na формата
| |
Тема
|
Re: MS Access i VB [
[re: American_boy]
|
|
Автор | Mишo (Нерегистриран) |
Публикувано | 27.09.02 00:36 |
|
Здрасти.
Не съм наясно какво искаш да направиш, но имам чуството, че пътят по който си тръгнал е погрешен. Обикновенно това, което искаш да направиш
се постига още при създаването на релациите, дефинирането на таблиците и създаването на query-та. Но все пак.
Доколкото разбирам dia type е разрешено и видимо само когато в type е написано EBW или Sub Arc. Но ако става въпрос само за тези две
стойности, за какво го разрешаваш (dia type)? Нека да е видимо, но не тярбва да се допуска редактирането му? Ако предположението ми е вярно
тогава напиши код за събитието type_BeforeUpdate !!
Private Sub type_BeforeUpdate(Cancel As Integer)
If [type].Text = "EBW" or [type].Text = "Sub Arc" Then
Me![dia type].Visible = True
Me![dia type] = "ARC"
Else
Me![dia type] = "" ' - Остава празно.
Me![dia type].Enabled = False
Me![dia type].Visible = False
End If
End Sub
'В този случай трябва да има обработка и на Form_Current().
Private Sub Form_Current()
If [type].Value = "EBW" or [type].Value = "Sub Arc" Then
Me![dia type].Visible = True
Me![dia type] = "ARC"
Else
Me![dia type].Enabled = False
Me![dia type].Visible = False
End If
End Sub
'***
Процедурата, която си написал в OnLoad няма да свърши работа. Цикълът се завърта само за първия запис и то 134 пъти!!, а не за всичките, както ти
се иска. Затова трябва да поставиш кода в OnCurrent. Тогава процедурата ще се изпълнява за текущия запис и за всеки , който става текущ. Този код, който ти давам ще свърши работа за тази цел.
Но си помисли по-добре за структурата на цялата база.
Успех.
| |
|
|
|
|