Jag har ett antal textrutor Text1(0) till Text1(8) Hur hämtar du information till textrutorna och hur sparar du den? Hej. Jag var intresserad hur du identiferar posterna. Dett ser man i om du tar med koden som finns i FyllTextRutor och i command2(2). Ok. Jag löste det skälv.Får inte ordning på commandoklnappar vid uppdate eller ny po
Ett antal commandoknappar command2(0) till command2(3)
Om jag har taget fram en post som bara skall editeras och uppdateras så vill jag att enbart knapparna för delit och uppdatera skall vara enabla. Skulle det därimot vara en ny post, så ville jag att knaparna för rensa och lägg till skall vara enabla.
Så här försöker jag:
<code>
Private Sub Text1_Change(Index As Integer)
Dim i As Integer
'om textinnehållet har ändrats
For i = 0 To 8
If Len(Text1(i)) = 0 Then
Command_False 'gör för alla kommandoknappar
End If
Next
If Len(Text1(0)) > 0 Or Len(Text1(1)) > 0 Then
Command2(0).Enabled = True 'rensa
Command2(1).Enabled = False 'ta bort
Command2(3).Enabled = True 'updatera
Command2(2).Enabled = False 'lägg till
Else
Command2(0).Enabled = False
Command2(1).Enabled = True
Command2(3).Enabled = False
Command2(2).Enabled = True
End If
End Sub
</code>
Som det är så vid ny post så fungerar det som det skall. Om jag editera någon gammal post, lägger till någon stavelse så är allt ok.
Om jag därimot i en gammal post har en ofylld textruta, och jag fyller i den, då blir det fel, knappen för ny blir då enabled.
Några förslag?Sv: Får inte ordning på commandoklnappar vid uppdate eller n
Varför gör du en kontrollarray av commandoknapparna? Skulle vara mycket enklare om du namngav den med logiska namn: cmdClear, cmdDelete, cmdUpdate, cmdInsert.
Kontrollarray kom till för att lägga till och ta bort kontroller i runtime och förenkla viss kod. Sv: Får inte ordning på commandoklnappar vid uppdate eller n
Av någon anledning så tycker jag att det känns bra att bygga på det viset, oavset hur det kom till. Jag får in all databashantering i en sub (om jag vill), och det är på ett ställe som jag letar på.
Genom att klicka i en listruta, så drar jag igång en sub, (FyllTextRutor), som fyller upp textrutorna med information ifrån databasen. Hur jag spara? Jag antar att jag missuppfatar dig, men den sparas genom att klicka på command2(2) för uppdatering, command2(3) för ny post.Sv: Får inte ordning på commandoklnappar vid uppdate eller n
Sv: Får inte ordning på commandoklnappar vid uppdate eller n
koden för uppdatera post
<code>
snacka.Speak "Uppdating customer number" & strListText
Dim ejLjud As Long, info As Long, skickCD As Long
If Check1 = Checked Then
ejLjud = 1
Else
ejLjud = 0
End If
If Check2 = Checked Then
info = 1
Else
info = 0
End If
If Check3 = Checked Then
skickCD = 1
Else
skickCD = 0
End If
SQL = "Update t_Kunder " & _
"Set Kundkategori= " & _
"(SELECT KundKat_Id FROM t_KundKategori " & _
"WHERE KundKategori='" & Combo2.Text & "')," & _
"Firma='" & Text1(0) & "', " & _
"Namn ='" & Text1(1) & "', " & _
"Box = '" & Text1(2) & "', " & _
"Adress = '" & Text1(3) & "', " & _
"PostOrt = '" & Text1(4) & "', " & _
"Tel = '" & Text1(5) & "', " & _
"Mobil = '" & Text1(6) & "', " & _
"Fax = '" & Text1(7) & "', " & _
"URL = '" & Text1(9) & "', " & _
"Epost = '" & Text1(10) & "', " & _
"EjLjud = " & ejLjud & ", " & _
"Info = " & info & ", " & _
"SkickCD = " & skickCD & ", " & _
"Anteck = '" & Text1(8) & "' " & _
"Where kundID = " & strListText & ""
'MsgBox SQL
Set Rst1 = Con.Execute(SQL)
eInfo.Caption = Text1(0).Text & " är nu uppdaterad."
FyllNamnLista
Command_False
</code>
koden för ny post
<code>
SQL = "Select KundKat_Id from t_Kundkategori WHERE KUNDKATEGORI= '" & Combo2.Text & "'"
Set Rst1 = Con.Execute(SQL)
snacka.Speak "Saving a new customer " & Text1(0).Text
SQL = ("Insert INTO t_Kunder(Kundkategori,Firma, Namn,Box,Adress,PostOrt,Tel,Mobil,Fax,URL,Epost,EjLjud,Info,SkickCD,Anteck)
VALUES( '" & Rst1(0) & "','" & Text1(0).Text & "',
'" & Text1(1).Text & "','" & Text1(2).Text & "',
'" & Text1(3).Text & "','" & Text1(4).Text & "',
'" & Text1(5).Text & "','" & Text1(6).Text & "',
'" & Text1(7).Text & "','" & Text1(9).Text & "',
'" & Text1(10).Text & "'," & Check1.Value & ",
" & Check2.Value & "," & Check3.Value & ",'" & Text1(8).Text & "')")
Set Rst1 = Con.Execute(SQL)
Rst1.Close
Set Rst1 = Nothing
eInfo.Caption = "En ny Kund har registrerats: " & Text1(0).Text
FyllNamnLista
Rensa
Command_False
Text1(0).SetFocus
</code>
Och för FyllNamnLista
<code>
Sub FyllNamnLista()
eInfo.Caption = "Hämtar kunder ur " & Combo2.Text
lList1.Clear
SQL = "Select kundID,Firma,Namn,SkickCD FROM t_kunder where kundkategori=(SELECT KundKat_Id FROM t_kundkategori where KundKategori= '" & Combo2.Text & "')"
Set Rst = Con.Execute(SQL)
If Not Rst.EOF Then
Do While Not Rst.EOF
If Rst("SkickCD") = True Then
lList1.AddItem Rst(1), , RGB(44, 8, 195), RGB(200, 234, 247), , , , Rst(0)
Else
lList1.AddItem Rst(1), , , , , , , Rst(0)' den här listboxen är en special som kan 'färga både bakgrund och teckensnittsfärg
End If
Rst.MoveNext
Loop
Else
Rst.Close
Set Rst = Nothing
lList1.AddItem "Det finns inga kunder"
End If
End Sub
</code>
Det blev ganska mycket, men vad jag inte förstår är, vad skall detta hjälpa när det gäller att styra commandoknapparna?Sv: Får inte ordning på commandoklnappar vid uppdate eller n
Om någon är intresserad så gorde jag så här.
Jag gjorde en nyckel bNytt med boolenskt värde.
Den kan allts bara vara endera sant eller falskt. Som standard så satte jag den sant.
Jag lade in detta värde i alla subbarna som var av intresse, t ex när jag fyllt upp textrutorna så var värdet falskt, rensade jag textrutorna så är värdet sant.
Jag gjorde sen en ny sub, det jag specifierade vilka knappar som skulle var aktuella vid resp värde.
Nu fungerar det kanon.