Avatar billede ugotabe_kidding Nybegynder
30. april 2003 - 16:23 Der er 18 kommentarer og
1 løsning

Tilføj ny record skal tilføje ny record igen

Jeg har en subform, hvori jeg lagrer EmployeeID, Year, Returned1, Returned2. Denne findes i mit Employee-vindue og indtastning ser typisk således ud:
(alle værdier vælges fra combobox'e)
Year | Returned1 | Returned2
2001 | Yes | Yes
2002 | Yes | No
2003 | N/A | Yes
2004 | No  | No
-------
Ved valg af N/A og Yes for året 2003 skal en ny record automatisk tilføjes for år 2004 med NO og No i begge felter.

Jeg vil nemlig kunne søge på hvilke medarbejdere der ikke har returneret det ønskede for et givent år.

Lige nu er der ikke tastet noget for nogen medarbejdere - nogen ideer til hvorledes jeg får lagret 2002, No og No for alle eksisterende medarbejdere?

/U.K.
Avatar billede kr-data Nybegynder
30. april 2003 - 16:27 #1
Laver du det rent i acces eller bruger du en form for klint, så som en asp side? Jeg vil nok kunne finde noget til en asp-side som vil kunne hjælpe!
Avatar billede ugotabe_kidding Nybegynder
30. april 2003 - 16:31 #2
Ren Access.. :o(
Avatar billede kr-data Nybegynder
30. april 2003 - 16:38 #3
Du skal ind i designvisning, og sætte en eller anden værdi der, men lige hvordan det ved jeg ikke
Avatar billede kr-data Nybegynder
30. april 2003 - 16:50 #4
Oki nu har jeg den, det du skal er.

Opret en ny tabel. Men lndre ingen date i den. Og definer ingen primær nøgle.

Gem den under det navn du ønsker

Gå ind i designvisning for tabellen (højreklik på tabellen)

Her kan du set felt1.

Tryk nu på feltet neden under (der hvor der havde stået felt 2 hvis det eksisterede)

Skriv Year.

Gå hen i feltet til højre for og vælg "Autonureringt"

Gå ned til felterne nedenunder.

Find der hvor der står format.

Indtast følgende (med gåseøjne) "200"0

Opret nu de andre felter, mens du gør det finder jeg lige ud af den med at den automatisk skal sige no
Avatar billede kr-data Nybegynder
30. april 2003 - 16:54 #5
Den med at sige no ved jeg ikke hvordan man gør
Avatar billede kr-data Nybegynder
30. april 2003 - 16:55 #6
Havde vist misforstået dit spørgsmål kan jeg se, har du en webserver som understøtter ASP?
Avatar billede ugotabe_kidding Nybegynder
30. april 2003 - 17:00 #7
Der er intet som helst web involveret - nej, jeg har ingen server.
Avatar billede terry Ekspert
30. april 2003 - 18:37 #8
In the BEFORE update for the sub form you can test for the values of these two fields and then IF necessary you can INSERT a record in code.

SOMETHING like this!

If me.Returned1 = "N/A" and me.Returned2 = "Yes" Then

docmd.runsql "INSERT into YourTable ([Year], Returned1, Returned2) VALUES (" & (me.Year + 1) & ", 'No', 'No')"
Avatar billede terry Ekspert
30. april 2003 - 18:37 #9
end if

I dont know what the data types are but I think it gives you an idea!
Avatar billede ugotabe_kidding Nybegynder
01. maj 2003 - 08:28 #10
>> Terry
Super! Det er et godt skridt på vejen.
Jeg forestiller mig dog at den nye record kun skal tilføjes hvis man befinder sig på LastRecord.
Noget i stil med
if me.nextrecord = NewRecord then 'hvordan skal dette se ud?
docmd.runsql "INSERT into YourTable ([Year], Returned1, Returned2) VALUES (" & (me.Year + 1) & ", 'No', 'No')"
else
msgbox "Kun når man markerer/ændrer det seneste år skal data for næste år tilføjes"
end if
Avatar billede terry Ekspert
01. maj 2003 - 08:48 #11
U.K>Just want to make sure I understand correctly! Do you want to ADD a record when you select a record (the last) OR when you ADD a record and the following is true?

If me.Returned1 = "N/A" and me.Returned2 = "Yes" Then
Avatar billede ugotabe_kidding Nybegynder
01. maj 2003 - 09:34 #12
Jeg vil tilføje en record, så snart sidste record markeres - uanset værdierne!
Avatar billede terry Ekspert
01. maj 2003 - 13:19 #13
I was sure I had place a comment!

You can see if your on the last record using the following example:

Private Sub Form_Current()

If Me.CurrentRecord = DCount("*", "YourTable") Then MsgBox "Last record"


End Sub
Avatar billede ugotabe_kidding Nybegynder
02. maj 2003 - 08:41 #14
>> Terry
Duer ovenstående eksempel også hvis det kun er den sidste record for den pågældende medarbejder? Det er jo ikke sikkert at det er den absolut sidste record i tabellen. Bør der være en form for DCount("*","MyTable","EmployeeID = "&EmployeeID) ? Eller er det ligemeget?
Jeg spørger fordi jeg ikke har mulighed for at teste dit eksempel før i eftermiddag.
Avatar billede terry Ekspert
02. maj 2003 - 20:04 #15
If Me.CurrentRecord = DCount("*", "YourTable", ","EmployeeID = "& me.EmployeeID) Then MsgBox "Last record"

This is assuming that on the form you are only showing records for a specific employee and that you have a field = me.EmployeeID on th eform and also in the table
Avatar billede ugotabe_kidding Nybegynder
03. maj 2003 - 18:51 #16
>> Terry
Du har hjulpet mig godt på vej, men der er desværre et par detaljer med SQLen der driller.
Når man markerer sidste record (eller ændrer en værdi i sidste record), tilføjes en ny record, hvor Year er 1 større end sidste record (Year+1).

Ovenstående If-sætning virker fint på LastRecord, men jeg kan ikke tilføje en ny record, med det nye årstal korrekt?
Det skyldes måske at min InsertInto SQL er ufuldstændig?
docmd.runsql "INSERT into YourTable ([Year], Returned1, Returned2) VALUES (" & (me.Year + 1) & ", 'No', 'No')"

Problemet er at jeg har følgende felter i "YourTable": ID (Autonummer), EmployeeID (Tal), Year (Tal), Returned1(Tekst), Returned2(Tekst)
docmd.runsql "INSERT into YourTable ([EmployeeID], [Year], Returned1, Returned2) VALUES (" & (me.EmployeeID) & ", " & (me.Year + 1) & ", 'No', 'No')"
Mangler der ikke en angivelse af ID-feltet i VALUES-delen af SQLen? Eller er det ligemeget, når det er et autonummer? I hvert fald genereres den nye record ikke korrekt - håber at du kan hjælpe, som du plejer ;o)
Avatar billede terry Ekspert
04. maj 2003 - 09:27 #17
You don not need your autonumber field!
Are there other fields which MUST be entered?

An idea is to see what the SQL looks like. Using the mouse mark from "INSERT....
to
...)"
Then copy this to the debug window (CTRL+G) opens the window (CTRL+C) copies (CTRL+V) pastes.

Then place a ? before the string and press return. If some of the variables are not filled out then you should see this. Also if any of the fields are strings then they must have '' aroind them. And in th ecase of yes and no. If these are boolean values then they should be 0 and -1 and NOT 'No' or 'Yes'
Avatar billede ugotabe_kidding Nybegynder
13. juni 2003 - 16:57 #18
Beklager den lange svartid.... Tildeler hermed points til det bedste svar... :o(
Avatar billede terry Ekspert
13. juni 2003 - 18:04 #19
tak, og god weekend :o)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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