Hej! Om du skapar en kontrollarray så får dessa textboxar samma händelser. Hej! Du kommer bara få ett event: Om du skapar en kontroll-array med textboxar så kommer du att få en Change händelse Hej! Om du binder textboxarna mot ett recordset. kan du få samma beteende som i access. Du kan då fånga BeforUpdate och AfterUpdate på enskilda kontroller och hela poster. Men återigen är detta på kontroll-nivå? Hejsan!Fånga händelse när ett textfält uppdaterats i ett VB-formul&
Jag har ett formulär med massa olika textfält.
Jag vill fånga upp om något av de har ändrats men INTE lägga in en händelsehantering på varje textfält (de är för många...)
Det måste ju gå att fånga det på formulärnivå?
I Access t.ex. kan du anävnda dig av formuläret afterUpdate()-funktion för att se om något ändrats.
Vad är VBs motsvarighet?
Jag jobbar i VB6.
Tack!
Mvh,
SofiaSv: Fånga händelse när ett textfält uppdaterats i ett VB-for
Du kommer kuna identifiera vilken textbox det är med hjälp av Index parametern i eventet.Sv: Fånga händelse när ett textfält uppdaterats i ett VB-for
Då får jag väl fortfarande en maaaasssa kod för dessa textboxar?
Även om jag inte själv behöver skriva en onChange() för alla så kommer väl det i koden finnas en on_change för att 68 textfälten?
Eller har jag fel där?
Mvh,
SofiaSv: Fånga händelse när ett textfält uppdaterats i ett VB-for
<code>
Private Sub Text1_Change(Index As Integer)
Debug.Print "Text1(" & Index & ")_Change"
End Sub
</code>
Lättaste sättet att skapa en kontrollarray av textbox'ar:
1. Lägg till en textbox.
2. Kopiera den.
3. Klistra in den.
4. Svara ja på frågan om du vil skapa en kontrollarray.
5. Klistra in så många textboxar du vill ha. Du kommer inte få fram dialogen.Sv: Fånga händelse när ett textfält uppdaterats i ett VB-for
Private Sub MinaTextboxar_Change(Index As Integer)
Debug.Print "TextBox " & CStr(Index) & " ändrades."
End Sub
//
Janne.Sv: Fånga händelse när ett textfält uppdaterats i ett VB-for
Tack för er hjälp!!
Detta löser mitt problem just nu då jag bara har textboxar så det är bra!
Men jag kommer snart att ha olika sorters kontroller på ett annat formulär, och frågan återstår fortfarande, har VB ingenting som fångar upp en ändring i formuläret?
Som Access har form_afterUpdate()?
Tack!!
Mvh,
SofiaSv: Fånga händelse när ett textfält uppdaterats i ett VB-for
Sv: Fånga händelse när ett textfält uppdaterats i ett VB-for
Det är inte det jag är ute efter. Går det inte att lägga det på formulärnivå så går det inte, då får man göra en fulare lösning. Men det hade varít skönt...
Tack för alla förslag!
SOfiaSv: Fånga händelse när ett textfält uppdaterats i ett VB-for
Man kan göra så att man fångar händelser (ändringar) i alla kontroller i ett formulär men endast om man använder tangentbordet, det funkar alltså inte om du klickar med musen.
Följande känner av ändringar i textboxar på ett formulär. Med lite kunskap om API kan man säkert bygga om koden så att den funkar med mustryckningar också. Sen är det bara till att utvidga ifsatserna för att den skall klara av flera sorters kontroller..
För att det ska fungera så måste "KeyPreview" på formuläret vara satt till "true"..
<code>
Public strPrevValue As String
Public strCurrValue As String
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
BeginCheck
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
endcheck
End Sub
Sub BeginCheck()
If TypeOf Me.ActiveControl Is TextBox Then
strPrevValue = Me.ActiveControl
End If
End Sub
Sub endcheck()
If TypeOf Me.ActiveControl Is TextBox Then
strCurrValue = Me.ActiveControl
If strCurrValue <> strPrevValue Then
Debug.Print Me.ActiveControl.Name & " värdet har ändrats!"
End If
End If
End Sub
</code>
Hoppas att detta hjälper något iallafall...