Avatar billede trinerafn Nybegynder
29. november 2005 - 14:58 Der er 30 kommentarer og
2 løsninger

Vis specifikt Projektnr fra knap i subform

Hej, Jeg har en form FrmAllData (qrySearch) m. en tabcontrol TabCtl0 som bl.a. har en pgProjectData, som har en FrmProjectData (qryProjectData)med child: ProjectID og Master ProjectID.
Nu vil jeg gerne vise et specifikt ProjectID fra en "søgeform" FrmSearch med en subform FrmSearchSub med en knap, hvor jeg på OnClick Eventen har skrevet:
stDocName = "FrmAllData"
stLinkCriteria = "[ProjectID]=" & Me![ProjectID]   
    DoCmd.OpenForm stDocName, , , stLinkCriteria, acFormEdit
Problemet er bare at den viser en ny tom FrmAllData, hvor den skulle have vist et specifikt ProjectID. Nogen der har en god idé?
Avatar billede fdata Forsker
29. november 2005 - 15:06 #1
Du skriver "med en subform FrmSearchSub med en knap..." Det er vel ikke sådan at du har ProjectID på selve formen og knappen i en subform? I så fald skal du refere til Me.Parent![ProjectID] i stLinkCriteria.
Avatar billede trinerafn Nybegynder
29. november 2005 - 15:23 #2
Det er nu afprøvet både før og efter lighedstegnet: Efter lighedstegnet: ingen virkning; før lighedstegnet: Enter parametervalue Me.Parent osv. Så det virkede ikke...
Avatar billede mugs Novice
29. november 2005 - 15:29 #3
Ret beset handler det jo om at åbne en anden formular med et bestemt ID. Så prøv een af flg:

Dim bookm
bookm = Me.Bookmark
Me.Requery
Me.Bookmark = bookm

Dim VARa As Long
VARa = Me!kundenr
Me.Requery
DoCmd.GoToControl "kundenr"
DoCmd.FindRecord a, acEntire, False, , True, acCurrent, True
Avatar billede trinerafn Nybegynder
29. november 2005 - 15:44 #4
>mugs hvordan og hvor helt præcis skal jeg indsætte din kode, istedet for min egen ? eller efter og dit "kundenr" er vel mit "ProjectID"?
Avatar billede fdata Forsker
29. november 2005 - 15:47 #5
Lad os lige få lidt klarhed over selve problemet. Ligger ProjectID i en hovedform og knappen i en subform? Eller ligger de i samme form?
Avatar billede fdata Forsker
29. november 2005 - 15:49 #6
... prøv også lige:
stDocName = "FrmAllData"
stLinkCriteria = "[ProjectID]=4711"    ' et eller andet ProjectID, der findes
    DoCmd.OpenForm stDocName, , , stLinkCriteria, acFormEdit
virker det?
Avatar billede trinerafn Nybegynder
29. november 2005 - 15:52 #7
ProjectID er feltet som er den unikke nøgle i min tabel TblProject. Dette felt er med i samtlige queries som jeg anvender og som danner basis for mine forme, så ja ProjectID ligger bl.a. i formen FrmProjectData og ja knappen med on Click eventen ligger i subformen som beskrevet ovenfor, håber dette giver en lille smule klarhed.
Avatar billede fdata Forsker
29. november 2005 - 15:58 #8
Det gør det desværre ikke  ;o(

Nu skriver du:
"så ja ProjectID ligger bl.a. i formen FrmProjectData og ja knappen med on Click eventen ligger i subformen"

Før skrev du:
"...fra en "søgeform" FrmSearch med en subform FrmSearchSub med en knap"

Er FrmProjectData eller FrmSearch din søgeform?
Avatar billede trinerafn Nybegynder
29. november 2005 - 16:03 #9
>fdata jeg prøvede din løsning med "[ProjectID]=129" som jeg ved findes og nej der vises stadig en tom form, så der er noget helt galt
Avatar billede trinerafn Nybegynder
29. november 2005 - 16:05 #10
FrmProjectData er en slags Subform på FrmAllData. FrmSearch er min søgeform. FrmSearchSub er en subform til FrmSearch. På FrmSearchSub vises alle de Projectnumre der findes.
Avatar billede trinerafn Nybegynder
29. november 2005 - 16:07 #11
Jeg vender tilbage imorgen, jeg håber nogen finder ud af noget....
Avatar billede fdata Forsker
29. november 2005 - 16:12 #12
Jeg begynder at forstå din opstilling. Du har en liste med projektnumre på FrmSearchSub. I den samme subform er der en knap til at aktivere søgningen.
Ved klik på knappen vil du åbne FrmAllData på det valgte projekt. Korrekt?

Hvis det ikke virker med "[ProjectID]=129", er der - som du siger - noget helt galt.
- Er du sikker på at ProjectID er med på FrmAllData?
- Filtre? Er der andre parametre, der udelukker projekt 129?
- Datatyper? Er ProjectID numerisk?
Avatar billede fdata Forsker
29. november 2005 - 16:13 #13
Ups. Vi krydsede vist lige indlæg her.
Alt ok. Vi venter spændt  ;o)
Avatar billede mugs Novice
29. november 2005 - 16:48 #14
Prøv denne:

stDocName = "FrmAllData"
stLinkCriteria = "[ProjectID]=4711"   
DoCmd.OpenForm stDocName, , , stLinkCriteria
Avatar billede fdata Forsker
29. november 2005 - 19:49 #15
... og nu er det vel ikke så simpelt at formens egenskab "Dataindtastning" er sat til True?
Avatar billede mugs Novice
29. november 2005 - 20:01 #16
Neeej - Så simpelt kan det ikke være :o)
Avatar billede Slettet bruger
30. november 2005 - 12:28 #17
Private Sub DinSøgeknap_click()
Dim SogId
SogId = Me.FeltetMedDetValgteId
DoCmd.Openform "FrmAllData"
Form_FrmProjectData.ProjectID.SetFocus
DoCmd.FindRecord SogId
End Sub

Måske!~)
Avatar billede trinerafn Nybegynder
30. november 2005 - 13:16 #18
OK, så er jeg her igen. Hvis jeg nu udskifter "FrmAllData" (den med tabkontrollen på) med subformen "FrmProjectData", så virker koden fint:
    Dim stDocName As String
    Dim stLinkCriteria As String   
    stDocName = "FrmProjectData"
    stLinkCriteria = "[ProjectID]=" & Me![ProjectID]   
    DoCmd.OpenForm stDocName, , , stLinkCriteria, acFormEdit
Trykker jeg her på cmdknappen fremkommer lige nøjagtig det ProjectID, jeg har valgt, sådan har det også virket hele tiden, men det er jo "FrmAllData" med subformen "FrmProjectData", jeg vil se det udvalgte ProjectID for, er det mon fordi "FrmProjectData" ligger som en subform på en Tabcontrol på en form?. Og nu vil jeg prøve at besvare spørgsmålene fra igår: Ja, ProjectID er vel med på FrmAllData, når den er baseret på qrySearch, som har feltet med. Nej, der er ingen filtre. ProjectID er et AutoNumber, og som tidligere sagt den unike nøgle. >mugs jeg kan se at du blot har fjernet acformEdit, det er afprøvet uden ændring, stadig en fin tom FrmAllData fremkommer. >fdata. Jo Dataentry er sat til Yes....og UPS her gik jeg lige ind og testede på at sætte dem på NO bag begge forme. og vupti nu virker det. Damn, for en begynderfejl. >fdata smid et svar. Så har jeg blot et sidste problem i denne sammenhæng og det er at hvor jeg før fint fra en anden knap kunne oprette en ny tom FrmAllData til udfyldelse får jeg nu fejlmeddelelsen: "You tried to assign the Null value to a variable that is not a Variant datatype, use the Dim statement to declare the variable as a Variant" uanset hvor jeg prøver at skrive noget. Hvor gør jeg lige det???
Avatar billede mugs Novice
30. november 2005 - 14:27 #19
"mugs jeg kan se at du blot har fjernet acformEdit, det er afprøvet uden ændring, stadig en fin tom FrmAllData fremkommer"

Når du fjerner edit fungerer det (afprøvet), men det bliver overridet af formularens dataindtastning.
Avatar billede trinerafn Nybegynder
30. november 2005 - 14:58 #20
Undskyld mugs, jeg har stor respekt for dig, men jeg ved ikke rigtig hvad jeg skal bruge din sidste kommentar til, du har ret, men nu er problemet jo, at fordi jeg så nu har sat DataEntry til No, som jeg skal, så fremkommer ovennævnte Datatype fejlmeddelelse, hvordan og hvor skal jeg rette den?
Avatar billede mugs Novice
30. november 2005 - 15:27 #21
Jeg undrede mig blot over, at det ikke fungerede. Det at formularens egenskab dataindtastning er sat til Nej, vil dette override min åbningskommando. Først åbner jeg formularen og den finder den rigtige post, men derefter følger Dataindtastning til Nej, som jo vil få formularen til at gå til en ny tom post.

"You tried to assign the Null value to a variable that is not a Variant datatype, use the Dim statement to declare the variable as a Variant"

Du får en Null-værdi i en variabel som ikke er af typen Variant. Du har jo de forskellige variabeltyper som String, long Byte o.s.v.

Du har sikkert angivet variablen som en long eller double. Perøv at dimensionere (dim) den som en Variant:

Dim din variabel As Variant
Avatar billede trinerafn Nybegynder
30. november 2005 - 15:44 #22
>mugs, ja men hvor? og er det alle variablerne eller er det mon ProjectID, som jo er Autonumber inde bag i den grundlæggende tabel? kan man gøre det globalt og i så fald hvor. Jeg har ikke haft held med at gøre det lokalt
Avatar billede fdata Forsker
30. november 2005 - 23:23 #23
Herligt, at det kom til at virke.
M.h.t. Null: Det er ikke dit Autonumber felt, idet det jo tælles op automatisk ved oprettelse af en ny post.
Er du sikker på, at du ikke tildeler Null til et-eller-andet, som ikke er af typen Variant? En eller anden reference?
Avatar billede trinerafn Nybegynder
01. december 2005 - 13:12 #24
>fdata: Jeg har bag formen lidt kode bag nogle af felterne, hvor jeg har nogle if-sætninger med IsNull, hvor jeg ikke har declareret variabler. F.eks.:
Private Sub TbSalesProjectClosingDate_Exit(Cancel As Integer)
If Not IsNull(Me.TbSalesProjectClosingDate) Then
  Me.Form!CmbReasonForClosing.Enabled = True
End If
End Sub
Kan det være det? og iøvrigt 1000 tak for hjælp til både dig og mugs!
Avatar billede mugs Novice
01. december 2005 - 13:56 #25
Jeg mener denne linie er forkert:

Me.Form!CmbReasonForClosing.Enabled = True

Prøv med.

Me!CmbReasonForClosing.Enabled = True

Når du bruger Me refererer det jo til den aktive form, så du behøver ikke at have objektsamlingen med. Hvis du ikke vil bruge det reserverede ord Me, skal det være:

[Forms]![Formularnavnet]![feltnavnet]

Ordet Form mener jeg ikke eksisterer.

Iøvrigt - Tak for point.
Avatar billede trinerafn Nybegynder
01. december 2005 - 14:56 #26
>mugs selv tak - jeg har rettet al kode til Me!Tbname.. osv. og det virker ligeså fint som før. Ordet Form var et af de ord man kunne vælge udfra vb's liste, så det må vel eksistere, og koden virkede jo også fint. Uanset hvad har det ikke nogen effekt på min efterhånden ret irriterende Fejlmeddelelse, som fremkommer uanset i hvilket felt jeg starter med at prøve at skrive noget, når jeg så har sagt OK, så viser den det tal eller bogstav jeg nu har skrevet, og jeg kan fortsætte med indtastningen. Jeg tror jeg opretter et nyt spørsmål, for nu jeg tænker over det var den vist begrundelsen for at jeg gik ind og rodede med DataEntry til Yes i sin tid, for så forsvandt fejlmeddelelsen, men til gengæld kunne jeg jo så ikke se de specifikke projektnumre. Det kan jeg jo dog nu.
Avatar billede mugs Novice
01. december 2005 - 16:41 #27
Hmmm - Jeg er faktisk ret blank nu. Kanm du sende db til:

mugs@mail.dk

Så vil jeg se på det. Husk at zippe og forklar lige hvad jeg skal gøre for at fremprovokere fejlen.
Avatar billede trinerafn Nybegynder
02. december 2005 - 12:35 #28
DB sendt
Avatar billede mugs Novice
02. december 2005 - 13:02 #29
Ser på den senere - Skal lige have lavet noget af det jeg min  løn for :o)
Avatar billede fdata Forsker
03. december 2005 - 19:02 #30
Tak for point.
"You tried to assign the Null value to a variable that is not a Variant datatype, use the Dim statement to declare the variable as a Variant" lugter altså meget af at du selv tildeler Null til et eller andet felt.
Er du helt sikker på, at du ikke har en "xxx = Null" et eller andet sted?
Eller en "xxx = yyy", hvor yyy er Null?
Hvis det sker uanset hvor du taster, kunne fejlen ligge i "FørIndsættelse" handlingen. Har du kode der?
Avatar billede mugs Novice
05. december 2005 - 20:58 #31
Db er returneret. Fejlen opstår fordi der er tale om en underformular, der er underordnet felt til samme felt i mainform. Når underformularen får en ny post er der ikke noget felt i mainform der passer til det linkede felt i underformularen. Fjernes overordnede - / underordnede felter opstår fejlen ikke.
Avatar billede fdata Forsker
06. december 2005 - 18:13 #32
Aha!
mugs >> tak for forklaringen
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