Combobox roteren in access 2010?

Status
Niet open voor verdere reacties.

Leonie25

Gebruiker
Lid geworden
23 sep 2011
Berichten
32
Ik had een vraagje, in een rapport wil ik graag een combobox 90 graden naar rechts roteren (want dit rapport moet op een labelprinter geprint worden die zo print), echter waar bij een textbox je vertical op yes kunt zetten is deze optie er niet bij een combobox. Als ik de combobox dan converteer naar een textbox waarmee dit wel kan dan krijg ik niet het resultaat in tekst, maar in een cijfer. Niet wat ik wil dus.
Als ik een select statement invoer bij control source (want er is dan geen row source meer), dan zegt hij dat er een syntax error (comma) is.
Dit is de select statement:

SELECT [Verzamelwijze].[Id], [Verzamelwijze].[Verzamelwijze], [Verzamelwijze].[Omschrijving] FROM Verzamelwijze ORDER BY [Verzamelwijze];

Kan iemand me misschien hiermee helpen? Moet ik hem dan omzetten naar een Dlookup of iets?
 
Als ik de combobox dan converteer naar een textbox waarmee dit wel kan dan krijg ik niet het resultaat in tekst, maar in een cijfer. Niet wat ik wil dus.
Gelukkig, Access doet nog precies wat-ie moet doen! Keuzelijsten afdrukken is natuurlijk onzin; niemand kan in een afgedrukte keuzelijst nog iets selecteren. Afdrukken doe je dan ook m.b.v. tekstvakken. En, dat had je al ontdekt, die kun je perfect kantelen. Dus is dat ook de oplossing.
Ja, zeg je dan: ik wil de cijfers (vast een Autonummerveld gebruikt in je tabel) niet zien, maar het tekstveld. En dat kan uiteraard. Geen enkel probleem zelfs! Kwestie van in de query die je voor je rapport gebruikt ook de tabel opnemen die je gebruikt voor de keuzelijst. Dat is dus in jouw geval de tabel [Verzamelwijze]. Overigens vind ik dit ([Verzamelwijze].[Verzamelwijze]) erg ongelukkig; tabellen moet je herkenbare namen geven, en zeker niet dezelfde als een veldnaam. Of een formulier, of een rapport).
 
Okee, duidelijk, maar ik gebruik geen query om mijn rapport te genereren. Is daar geen andere methode voor? Alles werkt nu echt prima, het is alleen dat ene veldje wat geen cijfer van de ID, maar de tekst moet weergeven, is hier geen select of dlookup voor te maken? dat zou veel eenvoudiger zijn. Al mijn rapporten zijn namelijk al klaar en op het goede formaat.

En ik heb nu geprobeerd een query te maken als basis voor het rapport, maar nu geeft hij het rapport 19x weer omdat de verzamelwijze 19 waardes heeft in de tabel. Hoe kan ik dit voorkomen?
 
Laatst bewerkt:
Okee, duidelijk, maar ik gebruik geen query om mijn rapport te genereren. Is daar geen andere methode voor?
Who's afraid of the query? :) Queries zijn een wezenlijk onderdeel van een database; in een genormaliseerde database heb je koppelingen op basis van één sleutelveld in de gekoppelde tabel; wil je in een rapport uit 2 tabellen meerdere gegevens laten zien, dan ontkom je niet aan queries. Het is, kortom, een natuurlijk verlengstuk van een tabel. Waarschijnlijk heb je in je tabellen ook keuzelijsten op basis van tabellen. Als je mijn berichtjes (en cursus) een beetje hebt gevolgd, weet je dat ik daar een gruwelijke hekel aan heb, en dat uitgebreid kan onderbouwen met argumenten. In een tabel horen geen keuzelijsten thuis, alleen velden waarin je de letterlijke opgeslagen gegevens kunt terugzien. Juist ook om dit soort problemen te voorkomen.
Stellen dat een Dlookup veel eenvoudiger is, komt in mijn ogen overigens in de buurt van het reizen van Maastricht naar Groningen per voet, omdat dat nu eenmaal makkelijker is: je hebt immers geen extra middelen nodig :).

Dat je rapport nu 19 keer dezelfde records laat zien, komt ongetwijfeld doordat je rapport niet goed gegroepeerd is. Wat dan weer vragen zet bij de oorspronkelijke indeling :).
 
Okee, ik heb een query aangemaakt, en nu werkt het goed.

Loop ik alleen weer tegen een ander probleem aan: mijn subformulier werkt niet meer. Hij neemt niet meer automatisch de ID over van het hoofdformulier, hoe kan zoiets? Ik heb access al opnieuw geïnstalleerd, zonder resultaat. Ik krijg steeds de error: the linkmasterfields property setting has produced this error: a problem occurred while database was communicating with OLE server or activex control.
 
Kijk, dat is nu een klassiek voorbeeld van verkeerde planning :). Altijd eerst zorgen dat je tabellen in orde zijn, eventueel je queries en als alles werkt, met ingevoerde testdata, ga je pas naar je formulieren en rapporten kijken. Vermoedelijk kan je het nog wel repareren, maar je moet misschien wel vrij diep kijken. Heb je bijvoorbeeld je formulier op een tabel gebaseerd met een keuzelijst die informatie van je hoofdformulier afhaalt, dan kan het zijn dat de verwijzing niet meer klopt. Je formulier doet het dan niet. Een subformulier dat je aan een hoofdformulier koppelt zou overigens nog steeds moeten werken; in je tabel onder je hoofdformulier zou je al de ID's opgeslagen moeten hebben. En je subformulier zou al gekoppeld moeten zijn op dat ID-veld. Als dat nu niet gebeurt, dan zou ik eerst naar de koppeling tussen de tabellen gaan kijken, want dan koppel je (vermoed ik) op de verkeerde velden. In de eigenschap van het subformulier kun je bij <Gegevens> zien welke velden zijn gekoppeld; daar kun je de koppeling opnieuw leggen.

Kom je er niet uit: post dan de database, dan kijken we wat makkelijker mee.
 
Ik heb even het formulier opnieuw aangemaakt en nu doet hij het gelukkig weer. Dan is er nog 1 laatste probleempje, ik had twee knoppen gemaakt om gegevens over te kopiëren uit het laatste record. Helaas werkt dat nu opeens niet meer. Ik krijg bij de een de error object invalid or no longer set, en bij de ander invalid use of Null...
Ik zal de database bijvoegen, als iemand me daarmee kan helpen dan heel graag. Het zit onder het knopje Sporen, en dan de knop Gegevens invullen en Spoor kopiëren, de een kopieert alles over uit vullingen en het spoor, de andere alleen het spoor, maar helaas werkt het opeens niet meer. Enig idee?
Oh ik wil de database toevoegen maar hij is groter als 100kb...
Ik heb hem hier even geupload: http://victoriandreams.nl/includes/HollandiaDB.rar

Hier is nog wel een andere database met ook twee knoppen om gegevens over te kopiëren, helaas doet hier ook geen van beide het... Bekijk bijlage BOOR BESCHRIJVINGEN.rar
 
Laatst bewerkt:
Ik snap de functie van de query <spoorkopieren> niet helemaal; hij geeft ook een foutmelding als je 'm probeert te bekijken. Daarnaast snap ik niet helemaal wat je aan het doen bent; je maakt een kopie van je recordset met RecordsetClone, en vervolgens voeg je die met Add aan zichzelf toe. Ik zou verwachten dat je die aan de tabel toevoegt.
 
Ik krijg ook sterk de indruk dat je probleem wordt veroorzaakt door het veld [werkput], waar je een opzoeklijst meer meervoudige waarden van hebt gemaakt. Die kun je niet straffeloos in een recordset gebruiken. Sowieso raad ik het gebruik van keuzelijsten in tabellen af; deze maand is dat geloof ik 'trending topic', want iedereen doet het dus wel... :). En het is zo slecht voor je database :D.
 
Ja ik weet het, en je hebt gelijk dat het slecht is. Ik ben van plan dat achteraf nog even te gaan verbouwen, maar de bedoeling is een knop die de vorige record kopieert (met opvolgende ID) en in de tabel opslaat. Is daar een betere manier voor?
 
Ik denk dus dat je af moet zien van het veld [werkput]. Maar kun je je db nog een keer uploaden? Ik krijg nu een half bestandje dat ik niet kan openen.
Off topic: ben je van Star Wars af? :D
 
Okee ik heb hem er weer even opgezet. Hij hoeft niet alle velden te kopiëren, als meerdere invoervelden niet kunnen dan is dat niet erg, maar het hele spoor en de vullingen dat zou wel handig zijn. En in de andere db wil ik ook graag alle gegevens over kunnen pakken van het vorige record.
En van star wars af, hoezo dat?
 
Als ik deze code gebruik, dan worden de meeste velden wel overgenomen, behalve de regels met commentaar. Daar zit dus een probleem.
Code:
Private Sub Form_Current()
Dim rs As Object
    
    Set rs = Me.Recordset.Clone
    If Not rs.EOF And Me.NewRecord Then
        With rs
            .MoveLast
                Me.spoornummer = DMax("[spoornummer]", "Sporen") + 1
                Me.datum = !datum
                ''Me.werkput = !werkput
                Me.vlak = !vlak
                ''Me.tekeningnummer = !tekeningnummer
                Me.lengte = !lengte
                Me.breedte = !breedte
                Me.diepte = !diepte
                Me.vorm = !vorm
                Me.relatie = !relatie
                Me.interpretatie = !interpretatie
                Me.coupe = !coupe
                Me.NAP = !NAP
                Me.opmerking = !opmerking
        End With
    End If
    
End Sub
En dat probleem komt dus doordat daar keuzelijsten met meervoudige waarden achter hangen. Dat is nu net zo'n nieuwigheidje van Microsoft dat leuk lijkt, maar elke compatibiliteit met 'ouderwetse' database systemen volkomen ruïneert.
En die victoriaanse winkel is toch heel wat anders als die SF winkel, qua sfeer :). Maar ik vind het leuk dat je nog steeds databases maakt!
 
Okee, ik heb alle 'vervelende velden' nu weggelaten, de knop gegevens invullen geeft geen foutmelding maar vult alleen het spoornummer en de datum in, bij spoor kopiëren hetzelfde verhaal als ik jouw code gebruik. Enig idee waarom hij de overige velden niet meeneemt?

Oh never mind, ik had de andere velden nog niet ingevuld, dus dan valt er niks over te nemen :). Top!

Alleen het formulier vullingen neemt hij niet mee, is daar misschien nog een oplossing voor?

En ja ik zit nu in de vintage kleding, antiek en curiosa, en ik heb nog een bedrijf in de archeologie :).
 
Laatst bewerkt:
Je bent er maar druk mee :). Voor het vullen van het subformulier heb je denk ik een aparte query nodig die daar de gegevens van uitleest. Maar dat zou op dezelfde manier moeten werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan