Hur gör man för att jämföra en inmatning med en databas. det ska alltså vara så när jag ska spara innehållet i några txtboxar och t.ex. konto namnet är GL så ska det kolla så att det inte finns något annat konto i txt filen som heter GL, och om det gör det så ska man mata in något annat. Innan du ska spara skicka in kontonamnet i en funktion som går in i databasen och kollar om kontot redan finns, ex: tack för hjälpen.. fast jag testar en annan väg just nu.. jag kanske tjatar, men i alla fall Jag vet inte om det är lösningen men ska bara en del av koden infattas av ifsatsen (KeyAscii = vbKeyReturn) ?? allt ligger i formen Har väl aldrig jobbat med sådana filer. Försökte använda den typen av fil för några dagar sen men den funkade inge bra just i det fallet så jag använde en gammal hederlig fil. Men jag är sugen att lära mig mer om fördelarna med det så om du skickar filerna så kan jag försöka lära mig samtidigt som jag kanske kan lösa dina problem. <trodde jag hade löst det men inte>Jämföra inmatning med databas
Karsten Tvarnö KT v1KaTv Stina Lindblad SL v1StLi Tobias Wideen TW v1ToWi Laila Ettrup LE v1LaEt Gustav Tvarnö GT v1GuTv <---- så ser txt filen ut.Sv: Jämföra inmatning med databas
If (kontoExist(txtKonto.text)) then
MsgBox "Kontot finns redan"
End If
Funktionen skulle kunna se ut så här:
Private Function kontoExist(konto As String) As Boolean
Dim sSql As String
Dim rs As ADODB.Recordset
'Ladda ett recordset för att se om kontot redan finns i databasen:
sSql = "SELECT KontoNamn FROM KontoTabell WHERE KontoNamn = '" & konto & "'"
Set rs = CreateObject("ADODB.Recordset")
rs.Open sSql, dbConn, adOpenKeyset, adLockOptimistic
kontoExist = Not rs.EOF
Set rs = Nothing
End Function
Hoppas att detta ska funka!!
/MariaSv: Jämföra inmatning med databas
dim söknamn as string
Private Sub cmdSök_Click()
Dim Räknare As Integer
If Not söknamn = "" Then
söknamn = UCase(söknamn)
For Räknare = 1 To sAntal.sAntal
Get sFilnr.sFilnr, Räknare, Konton.login
If UCase(Trim(Konton.login)) = söknamn Then
sPost.sPost = Räknare
Post.Post = sPost.sPost
form1.poster
Exit Sub
End If
Next Räknare
MsgBox ("Hittade ingen post")
Else
MsgBox ("Du har inte angivit något namn")
End If
End Sub
min sökfunktion som jag fick att funka tillslut, tänkte att den borde gå att använda till det här också. ska bara ändra lite, kom gärna med tips.Sv: Jämföra inmatning med databas
när jag nu matar in T.ex. Karsten Tvarnö och sparar så är det inga problem. och när jag sedan matar in Karin Tuldin så säger den att login namnet redan finns, och skickar mig till att mata in ett nytt t.ex. KaT. sen spara
inga problem. men när jag sedan matar in ett nytt, fast när jag sedan matar in en ny användare, t.ex. Fredrik Alberg så skriver den FA till txtlogin. men den sparar KaT. vad missar jag?..
<code>
Private Sub txtEfternamn_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
txtLogin = Left(Konton.Förnamn, 1) & Left(Konton.Efternamn, 1)
txtLösen = ("v1") & Left(Konton.Förnamn, 2) & Left(Konton.Efternamn, 2)
Konton.login = txtLogin
Konton.Lösen = txtLösen
End If
slogin = form1.txtLogin
Konton.Efternamn = form1.txtEfternamn
Konton.Förnamn = form1.txtFörnamn
Konton.login = form1.txtLogin
Konton.Lösen = form1.txtLösen
söknamn = txtLogin
Dim räknare As Integer
If Not söknamn = "" Then
söknamn = UCase(söknamn)
For räknare = 1 To sAntal.sAntal
Get sFilnr.sFilnr, räknare, Konton.login
If UCase(Trim(Konton.login)) = söknamn Then
MsgBox ("Namnet på kontot Finns Redan, var vänlig att mata in ett nytt, gärna ett som relaterar till ditt namn")
txtLogin = ""
txtLogin.SetFocus
End If
Next räknare
Else
End If
End Sub
</code>Sv: Jämföra inmatning med databas
Och ligger koden i en modul eller i formen? Undrar beroende på du använder både form1.txtLogin och txtLogin.Sv: Jämföra inmatning med databas
annledningen till att jag använder både form1.txtlogin och txtlogin är att jag är så pass ovan så jag har ingen som helst förståelse för bra syntax osv =)...
problemet löser sig dock om jag matar in login namnet manuellt... hur tror ni det går att lösa?
och sen ett annat problem. jag har ju sparat dom olika posterna i en txt fil.. konton.txt och txtlogin i sök.txt.. hur gör jag för att ta bort den posten som finns i sök.txt utan att behöva mata in vilken post jag vill ta bort två gånger?
<code>
Private Sub mnuTabort_Click()
Dim svar As String
Dim räknare As Integer
Dim Filnr2 As Integer
Dim PostLängd As Integer
Dim Antal2 As Integer
PostLängd = Len(Konton)
Filnr2 = FreeFile
Open "temp.txt" For Random As Filnr2 Len = PostLängd
Antal2 = 0
svar = InputBox("Vilket konto vill du ta bort?" & " " & "Mata in login.", "Borttagning")
If Not (svar) = "" Then
svar = UCase(svar)
For räknare = 1 To Antal
Get Filnr, räknare, Konton
If UCase(Trim(Konton.login)) <> svar Then
Antal2 = Antal2 + 1
Put Filnr2, Antal2, Konton
End If
Next räknare
End If
Close Filnr
Close Filnr2
Kill FilNamn
Name "temp.txt" As FilNamn
Filnr = FreeFile
Open FilNamn For Random As Filnr Len = PostLängd
Post.Post = 1
Antal = FileLen(FilNamn) / PostLängd
rensa
End Sub
</code>Sv: Jämföra inmatning med databas
problemet.
Jag hade ganska många filer som är benämda 0-1 , 0-2 , osv till 0-13 och 1-0, 1-1, osv till 1-12 , och den sista är 13-0 det är så att tal1 + tal2 är högst 13 och 0-0 finns inte men alla andra alternativ finns.
Jag vill slå ihop alla till en fil. Jag försökte gör en fil så som inifilerna är uppbygda men dom klarade bara ca 70kb?? Filen blir ca 4-5mb stor. Sen tänkte jag på "random file"(vet inte vad det heter?) men jag försökte spara varje fil på ett nummer som berättade vilken fil det var t.ex 11-1 skrev jag till plats 1101 men det funkar ju inge bra upptäckte jag för den fyller i alla andra positioner med en massa skräp så jag använde en vanlig fil och det funkar hyfsat bra.
herman@owns.itSv: Jämföra inmatning med databas
däremot så har jag märkt att ta bort funktionen funkar bra om man bara stänger ner programmet efter första gången man har startat det och sparat.