Avatar billede terra Nybegynder
19. januar 2003 - 15:38 Der er 26 kommentarer og
1 løsning

(?) Tjekke db.Recordset for Text ' (*.mdb)

Jeg skal tjekke at Text1.Text ikke er i 'employees', før jeg kjører 'Update'.
Er det noen som kan hjelpe?

Private Sub Command1_Click()
db.Execute ("UPDATE tblClient SET employees=" & Val(Text1.Text)
End Sub

Terra
Avatar billede _darkstar_ Nybegynder
19. januar 2003 - 15:44 #1
Private Sub Command1_Click()
if Text1.Text <> 'employees' then
db.Execute ("UPDATE tblClient SET employees=" & Val(Text1.Text)
end if
End Sub
Avatar billede _darkstar_ Nybegynder
19. januar 2003 - 15:47 #2
Eh. Måske det ikke var det som du spurgte om.

Vil du gerne checke at der ikek allerede findes en række med værdien i samme tabel? I så fald er der ikek andet for end at køre en SELECT-forespørgsel for at se om en sådan række findes først.

Havde det været en "rigtig" relationel database, kunne man tvinge databasen til at gøre arbejdet ved at indføre en begrænsning.
Avatar billede terra Nybegynder
19. januar 2003 - 15:59 #3
Hei -> darkstar, jeg skal tjekke et kolonne i 'tblClient' med navn 'employees' for en Text1.Text
'for at ikke sette ind records med samme navn.
Avatar billede tubber Juniormester
19. januar 2003 - 16:29 #4
rs.movefirst
Do While NOT rs.eof
If rs.employees = text1.text then
    exit sub
end if
Loop
db.Execute ("UPDATE tblClient SET employees=" & Val(Text1.Text)
Avatar billede bernhof Nybegynder
19. januar 2003 - 17:58 #5
If db.Execute("SELECT employees FROM tblClient WHERE employees = " & Val(Text1.Text)).EOF Then
    db.Execute "UPDATE tblClient SET employees=" & Val(Text1.Text)
End If

burde også virke...
Avatar billede tubber Juniormester
19. januar 2003 - 18:01 #6
øhm den skal vist kun opdatere hvis den employee ikke findes....

mikbj din sætning updater den hvis den findes er det ikke korrekt ?

Eller læser jeg det forkert ?
Avatar billede bernhof Nybegynder
19. januar 2003 - 18:20 #7
Nej, EOF betyder End Of File, så hvis den er EOF efter søgningen er udført, har den ikke fundet nogen ansat med det navn ..
Avatar billede tubber Juniormester
19. januar 2003 - 19:13 #8
ok :O) så lærte jeg da lidt :O)
Avatar billede terra Nybegynder
19. januar 2003 - 22:31 #9
Hmm ... Det blir forkert...
Vet ikke helt hva jeg gjør galt (?)

Bruger:

Private ws As Workspace
Private db As Database
Private rs As Recordset

Private Sub Form_Load()

Set ws = Workspaces(0)
Set db = ws.OpenDatabase("f:\usr.mdb")
Set rs = db.OpenRecordset("SELECT * FROM tblClient")
If Not rs.EOF Then
    rs.MoveFirst
    Do While Not rs.EOF
        Combo1.AddItem rs!CompanyName
        rs.MoveNext
    Loop
End If

End Sub

Skal ha:
db.Execute ("UPDATE tblClient SET employees='" & txtEmployees.Text & "'")
'men ... hvis txtEmployees.Text er fra før i rs!employees
'Skal ha en MsgBox og Exit Sub
Avatar billede bernhof Nybegynder
20. januar 2003 - 15:21 #10
"'men ... hvis txtEmployees.Text er fra før i rs!employees
'Skal ha en MsgBox og Exit Sub"

... den forstod jeg ikke lige?
Avatar billede tubber Juniormester
20. januar 2003 - 19:12 #11
Forstår den heller ikke lige......
Avatar billede terra Nybegynder
20. januar 2003 - 22:33 #12
navn: 'employees' kan 'forvirre' lidt her maybe
/ brugernavn / måste bli mer korrekt,

Jeg skal ha en:

Private Sub Command1_Click()
db.Execute ("UPDATE tblClient SET employees=" & Val(txtEmployees.Text) _
            & ", address='" & Text2.Text & "', type=" & Val(Text3.Text) _
            & " where companyname='" & Combo1.Text & "'")
End Sub
Men,... den ska også tjekke før 'UPDATE' at teksten ikke findst i andre records.
Hvis teksten findst så ska den !ikke skrive til (oppdatere) felten
Men gi MsgBox at: Dette (navn) findst og bruker må velge et andet.
Exit Sub 'Avslutte
Avatar billede terra Nybegynder
20. januar 2003 - 22:45 #13
Også fx brukes i:
Database.Execute "INSERT INTO tblClient (companyname, brugernavn, address,) VALUES ('" & Text1.Text & "', '" & txtBrugernavn.text & "', '" & Text2.text & "');"
' for at finde at 'brugernavn' er i brug.

MVH
Terra
Avatar billede tubber Juniormester
20. januar 2003 - 23:33 #14
Private Sub Command1_Click()
Set ws = Workspaces(0)
Set db = ws.OpenDatabase("f:\usr.mdb")
Set rs = db.OpenRecordset("SELECT * FROM tblClient")
If Not rs.EOF Then
rs.movefirst
do while not rs.eof
If rs.companyname = combo1.text then
  exit sub
end if
loop
db.Execute ("UPDATE tblClient SET employees=" & Val(txtEmployees.Text) _
            & ", address='" & Text2.Text & "', type=" & Val(Text3.Text) _
            & " where companyname='" & Combo1.Text & "'")
End Sub

vil jeg gætte på.....
Avatar billede tubber Juniormester
20. januar 2003 - 23:43 #15
hmmmm den ser forkert ud den sætning..... 2 sec.....
Avatar billede tubber Juniormester
20. januar 2003 - 23:46 #16
Nej ser ok ud....

Skal den update hvis brugeren eksistere eller hvis den ikke gør......
Avatar billede tubber Juniormester
20. januar 2003 - 23:52 #17
For skal den update hvis den eksistere så kan det gøres sådan her:

Private Sub Command1_Click()
Set ws = Workspaces(0)
Set db = ws.OpenDatabase("f:\usr.mdb")
db.Execute "UPDATE tblClient SET employees = '" & txtEmployees.Text & "' , address = '" & Text2.Text & "' , type = '" & Text3.Text & "' where companyname = " & Combo1.Text & ";"
End Sub
Avatar billede terra Nybegynder
20. januar 2003 - 23:53 #18
Skal oppdatere hvis den ikke eksistere.
If eksistere Then
MsgBox at: Dette (navn) findst og bruker må velge et andet.
Exit Sub 'Avslutte
End Sub

Vie er nesten i mål :)
Avatar billede tubber Juniormester
20. januar 2003 - 23:59 #19
aaah så er det slet ikke update du skal bruge......

Update opdatere nuværende poster......
Du skal tilføje....

2 sec....
Avatar billede tubber Juniormester
21. januar 2003 - 00:03 #20
Private Sub Command1_Click()
Set ws = Workspaces(0)
Set db = ws.OpenDatabase("f:\usr.mdb")
Set rs = db.OpenRecordset("SELECT * FROM tblClient")
If Not rs.EOF Then
rs.movefirst
do while not rs.eof
If rs.companyname = combo1.text then
  exit sub
end if
loop
db.Execute "INSERT INTO tblClient (employees,address,type) VALUES ('" & txtEmployees.Text & "' , '" & Text2.Text & "' , '" & Text3.Text & "');"
end sub
Avatar billede tubber Juniormester
21. januar 2003 - 00:04 #21
kan bare ikke lige gennemskue det med comboboxen.....

men jeg mener ikke du kan update en record der ikke er der......
Avatar billede terra Nybegynder
21. januar 2003 - 01:02 #22
Compile error:
Method or datamembet not found.

Peker på: rs.brugernavn = txtBrugernavn.text 'brugernavn

'comboboxen = companyname
'bruker jeg i et andet form for oppdatering av brugernavn.
'ellers så bruker jeg txt.CompaNyname for ny bruger

(?)Terra
Avatar billede tubber Juniormester
21. januar 2003 - 06:18 #23
Private Sub Command1_Click()
Set ws = Workspaces(0)
Set db = ws.OpenDatabase("f:\usr.mdb")
Set rs = db.OpenRecordset("SELECT * FROM tblClient")
If Not rs.EOF Then
rs.movefirst
do while not rs.eof
If rs.companyname = combo1.text then
  exit sub
end if
loop
Set ws = Workspaces(0)
Set db = ws.OpenDatabase("f:\usr.mdb")
db.Execute "INSERT INTO tblClient (employees,address,type) VALUES ('" & txtEmployees.Text & "' , '" & Text2.Text & "' , '" & Text3.Text & "');"
end sub

Prøv sådan
Avatar billede terra Nybegynder
21. januar 2003 - 18:23 #24
Nei,... den blir forkert.
Jeg skal prøve at lave en enkel form og teste lit her.
Det har hendt at den krasjer heilt.

Hva er forskjellen på rs.companyname og rs!companyname?
Hvis jeg bruger det i formen ovenfor?

Terra
Avatar billede terra Nybegynder
21. januar 2003 - 20:06 #25
Har fundet selv noe jeg kan bruge.
http://www.eksperten.dk/spm/261363
Kommentar: tubber
23/09-2002 15:30:33
Ellers Takk for hjelpen.

MVH Terra
Avatar billede tubber Juniormester
21. januar 2003 - 21:29 #26
Så lidt da :O)

Husk lige at lukke :O)
Avatar billede terra Nybegynder
21. januar 2003 - 23:08 #27
Terra takker for alt forsøg og slukker points itself :)
Ha en fin kveld.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester