Hej. Testa detta: Om du vill tillåta siffror och annat tjafs så: Trash ditt exempel är bättre... Okej...får det ej att fungera, då jag har en kod som ligger och justera så att jag kan hoppa mellan textboxana med hjälp av entertangenten,...följande kod anväder jag idag för detta, hur plussar jag ihop detta då?? Skriv in din tab function så här istället: Private Sub Text1_KeyPress(KeyAscii As Integer) Trash exempel fungerar perfekt, presic som jag ville ha det, tackar så mycket för all hjälp, och självklart alla som oxå kom med förslag.. Okej...Petter..du får en chans till.. Helt rätt...användaren trycker på en knapp sedan...ja efter att han har fyllt i alla textboxarna, men är det så att någon textbox är missad så skall det komma upp en msgbox...är du med?? Testa detta det är en ganska lätt källkod men den funkar: Ungefär så men inte riktigt...Glömde ju säga att jag har 6 st optionsbuttons, när man klickar för option1 så är det en textruta som man skall skriva i, klickar man för option 2 så är det 2 st textrutor man skall skriva i osv.... Lek med tanken att jag har option2 markerad, alltså 2 st textrutor, missar nu användraren att skriva i en textbox så skall msgbox komma upp. Kan meddela dig att jag håller på med ett prgram som registerar biljetter och som skriver ut biljetter oxå... Testa: Hej Henrik skrev Föreslår att du gör dina options och textboxer till kontrollarrayer. Är enkla att enumerera. Istället för att visa en medelande rute för varje textbox som ej är ifylld. Är det snyggare och upplevs mindre störande av användaren att bara visa en medelanderuta i vilket du anger de rutor som saknas:STORA BOKSTÄVER
Har ett antal textboxar, 1-6 skulle vilja att man bara kan skriva stora bokstäver i dessa boxar, finns det någon kod för detta eller hur gör man?
Eller om man kan lägga in någon kod för stor bokstav på första ordet och sedan resten av bokstäverna skall vara små.
Tacksam för svar.Sv: STORA BOKSTÄVER
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii >= 66 And KeyAscii <= 91) Or KeyAscii = 197 Or KeyAscii = 196 Or KeyAscii = 214 Then
Else
KeyAscii = 0
End If
End Sub
Det borde funka...
//PetterSv: STORA BOKSTÄVER
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = asc(ucase(chr(KeyAscii)))
End SubSv: STORA BOKSTÄVER
<Bows in humbleness>
Nu fick jag lära mig ett nytt trix det är ju alltid bra att ha.
Ett förslag:
- Ta Trash's exempel...
//PetterSv: STORA BOKSTÄVER
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{Tab}"
KeyAscii = 0
End If
End Sub
Tacksam för svar...Sv: STORA BOKSTÄVER
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Const KEY_RETURN = &HD
If KeyCode = KEY_RETURN Then SendKeys "{TAB}"
End Sub
Det funkar. Fast då tabbar du hela tiden med den.
//PetterSv: STORA BOKSTÄVER
If KeyAscii = vbKeyReturn Then
SendKeys "{Tab}"
Else
KeyAscii = asc(ucase(chr(KeyAscii)))
End If
End SubSv: STORA BOKSTÄVER
Sv: STORA BOKSTÄVER
Om jag vill att användare måste fylla i alla textboxar...innan han gör något annat. om han inte för det så skall det komma upp en msgbox som talar om vilken textbox han har glömt att fylla i..
Kan du lösa det då? Ider tacksam ....Sv: STORA BOKSTÄVER
Sv: STORA BOKSTÄVER
Sub Msg(Text As String, Nr As Integer)
If Text = Empty Then
MsgBox ("DU MÅSTE SKRIVA NÅNTING I TEXTBOX NR " & Nr)
End If
End Sub
Private Sub Command1_Click()
Call Msg(Text1.Text, 1)
Call Msg(Text2.Text, 2)
Call Msg(Text3.Text, 3)
Call Msg(Text4.Text, 4)
Call Msg(Text5.Text, 5)
Call Msg(Text6.Text, 6)
End Sub
Kanske inte bästa heller men...
Var det ungefär så här du menade?
//PetterSv: STORA BOKSTÄVER
så vet du ju vad jag håller på med....kanske underlättar lite...mycket tacksam för din hjälp, bra iblandn när man kör fast...Sv: STORA BOKSTÄVER
Option Explicit
Sub Msg(Text As String, Nr As Integer)
If Text = Empty Then
MsgBox ("DU MÅSTE SKRIVA NÅNTING I TEXTBOX NR " & Nr)
End If
End Sub
Private Sub Command1_Click()
If Option1.Value = True Then Call Msg(Text1.Text, 1)
If Option2.Value = True Then Call Msg(Text1.Text, 1): Call Msg(Text2.Text, 2)
If Option3.Value = True Then Call Msg(Text1.Text, 1): Call Msg(Text2.Text, 2): Call Msg(Text3.Text, 3)
If Option4.Value = True Then Call Msg(Text1.Text, 1): Call Msg(Text2.Text, 2): Call Msg(Text3.Text, 3): Call Msg(Text4.Text, 4)
If Option5.Value = True Then Call Msg(Text1.Text, 1): Call Msg(Text2.Text, 2): Call Msg(Text3.Text, 3): Call Msg(Text4.Text, 4): Call Msg(Text5.Text, 5)
If Option6.Value = True Then Call Msg(Text1.Text, 1): Call Msg(Text2.Text, 2): Call Msg(Text3.Text, 3): Call Msg(Text4.Text, 4): Call Msg(Text5.Text, 5): Call Msg(Text6.Text, 6)
End Sub
Lite dåligt kodat men jag kan göra det bättre imorgon! Det funkar ju iaf.
//PetterSv: STORA BOKSTÄVER
>lägga in någon kod för stor bokstav på första ordet
Då kan du göra enl denna princip
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then _
Text1.Text = StrConv(Text1.Text, vbProperCase)
End Sub
Dvs StrConv(Text1.Text, vbProperCase)
Mvh
SvenSv: STORA BOKSTÄVER
<code>
Private Sub Command1_Click()
Dim Index As Long
Dim Message As String
Dim OptionBtn As OptionButton
For Each OptionBtn In Option1
If OptionBtn.Value Then
For Index = 0 To OptionBtn.Index
If Len(Text1(Index).Text) = 0 Then
Message = Message & vbCrLf & "Textbox " & Index + 1
End If
Next
If Len(Message) Then
MsgBox "Du har inte fyllt i:" & Message
Else
'Ok
End If
Exit For
End If
Next
End Sub
</code>
Har oxå ett litet tips. Om du vill ge textrutorna namn likt t.exe förnamn efternamn osv. Kan du fylla i dessa namn i textboxens tagegenskap och ändra till:
<code>
Private Sub Command1_Click()
Dim Index As Long
Dim Message As String
Dim OptionBtn As OptionButton
For Each OptionBtn In Option1
If OptionBtn.Value Then
For Index = 0 To OptionBtn.Index
If Len(Text1(Index).Text) = 0 Then
Message = Message & vbCrLf & Text1(Index).Tag
End If
Next
If Len(Message) Then
MsgBox "Du har inte fyllt i:" & Message
Else
'Ok
End If
Exit For
End If
Next
End Sub
</code>