Hallo mensen,
Ik heb een ODBC koppeling tussen een MySQL database en access, allees sommige tabellen hebben een punt in de veldnaam. Access accepteert dit niet. Weet iemand hoe dit te omzeilen is?
Alvast bedankt.
Klaas Jan
Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.
Naar overzicht van alle forumsGewoon de punten verwijderen…overgens wie verzint zoiets. In veel database kom ik nog dat soort onzin tegen punten strepen underscores……allemaal achterhaalt. Een aantal tekens moet je zelfs helemaal niet gebruiken…dit zijn vaak stuur tekens voor o.a. queries.
Deze manier van werken stampt uit de jaren 90. Indien je zinnige namen geeft aan velden desnoods gescheiden door een spatie, zal je zien dat vele programma's ineens heel aardig zijn. Access is daar een uitstekend voorbeeld van. Maak maar eens een tabel aan met zinnige namen voor de velden. Maak vervolgens met een wizzard eens een formulier en of een rapport. Alles staat al keurig op het scherm. Kortom een goede basis en het programma doet de rest.
>In veel database kom ik nog dat soort onzin tegen punten strepen underscores……allemaal achterhaalt.<
Waarom dan wel?
Kun je dat onderbouwen?
>Maak maar eens een tabel aan met zinnige namen voor de velden.<
Wat voor de een zinnig is is dat voor de ander niet.
Kolomnamen en namen van formuliervelden zijn twee totaal verschillende dingen.
RV2
Wij werken met BaaN dit erp pakket heeft 2500 tabellen waarvan elke veldnaam een punt bevat. De opbouw van deze namen is juist erg logisch. In aansluiting daarop hebben we de tabellen buiten het ERP pakket een soortgelijke structuur gegeven. (Dus met punt). Je zal begrijpen dat deze niet te verwijderen zijn.
Nu probeer ik met ODBC in Access een koppeling te maken met een aantal van deze tabellen. Mijn vraag is of iemand een oplossing heeft om die punten te negeren omdat Access hier niet mee kan omgaan. Als iemand hier iets op weet graag een reactie.
Als nog iemand opmerkingen heeft over de opbouw van de veldnamen wil ik die graag doorsturen naar de gebroeders Baan, maar laat dit hier achterwege. Als ik kritiek wil ga ik wel naar mijn baas.
KJ
Het moraal van het verhaal heel simpel. Gebruik voor veldnamen zinnige namen (tenzij je ze niet gebruikt in rapportages en of formulieren bijvb een ID welke je gebruikt om een koppeling te leggen met een andere tabel). Als je een rapport of formulier aanmaakt hoef je niet alle captions te vervangen door zinnige namen. Scheelt werkt, en verder een veldnaam plnm daar kan een gebruiker weinig mee als je hiermee plaatsnaam bedoelt.
Veel databases zien een aantal karakters als uitvoerings of markerings karakters. Dit kan per database verschillen. In de meeste gevallen laat de database zelfs toe dat je deze karakters mag invoeren in veldnamen. Het gaat dan mis op het moment dat je een query gaat maken.
Door gebruik te maken van het alfabet A_Z en getallen 0-9 en een spatie is iedere database te benaderen via een andere database. (o.a. door ODBC).
(uitzondering op de spatie zijn vaak oudere databases, in die periode is de underscore in zwang gekomen)
Zo en nu de naamgeving betreffende ACCESS
Richtlijnen voor de naamgeving van velden, besturingselementen en objecten
Namen van velden, besturingselementen en objecten in Microsoft Access:
mogen uit maximaal 64 tekens bestaan
mogen elke willekeurige combinatie van letters, cijfers, spaties en speciale tekens bevatten behalve een punt (.), een uitroepteken (!), een accent grave (`) en vierkante haakjes ()
mogen niet met een voorloopspatie beginnen
mogen geen stuurtekens (ASCII-waarden 0 t/m 31) bevatten
namen van tabellen, weergaven of opgeslagen procedures in Microsoft Access-projecten mogen geen dubbele aanhalingstekens (") bevatten
Hoewel het gebruik van spaties in namen van velden, besturingselementen en objecten is toegestaan, worden in de meeste voorbeelden in de documentatie bij Microsoft Access namen zonder spaties gebruikt. Namen die spaties bevatten kunnen in sommige gevallen naamgevingsconflicten in Visual Basic for Applications veroorzaken.
Let bij de naamgeving van velden, besturingselementen en objecten goed op dat u geen namen van eigenschappen of andere elementen van Microsoft Access gebruikt. Dit kan in sommige gevallen leiden tot onvoorspelbaar gedrag van de database. Als u bijvoorbeeld naar de waarde van een veld Naam in een tabel Nameninfo verwijst en daarvoor de syntaxis Nameninfo.Naam gebruikt, zal in plaats van de waarde van het veld Naam de waarde van de tabeleigenschap Naam (Name) worden weergegeven.
U kunt dergelijke onverwachte resultaten ook voorkomen door in verwijzingen naar waarden van velden, besturingselementen en objecten altijd de operator ! in plaats van de operator . (punt) te gebruiken. Zo verwijst de volgende id uitdrukkelijk naar de waarde van het veld Naam en niet naar de eigenschap Naam (Name).
Wordt toch een beetje lastig verhaal Klaas Jan, daar Access simpelweg geen punt accepteert. Het ligt er maar aan wat je van plan bent en hoe vaak je iets met deze gegevens wil doen. Exporteren naar Excel kan een optie zijn. Wat je ook kan doen is van de tabellen met de punt een query maken en de velden een alias geven
Select klant.naam as klantnaam from klanten
Probeer daarna of je een koppeling kan maken met de query ipv van de oorspronkelijke tabel.
suc6 Eric
In tegenstelling to wat een aantal van jullie misschien denken heb ik geen uitlegnodig over hoe je de veldnamen moet opbouwen. Sterker nog, plnm is wel goede programmeernaam voor een veld, je moet geen hele woorden gebruiken voor veldnamen, dit is veel te lastig met programmeren. Je kan beter voor een korte naam kiezen en het bijschrift vullen zodat in de formulieren en rapporten wel een logische naam verschijnt. Zie hieronder als voorbeeld
TD01 = tabelnaam
T = tabel
D = distributie
01 = volgnummer tabel
Veldnaam
TD01ITEM
TD01QUAN
enz
Bovenstaande is duidelijker met het leggen van relaties en eenvoudiger programeren dan met hele woorden of meerdere als veldnaam.
Maar ik zoek nog steeds een ODBC-driver waarmee de punten in veldnamen kunnen wrden genegeerd, danwel vervangen.
Weet je zeker dat je deze post als spam wil rapporteren aan de beheerder?
Deze post wordt als spam gerapporteerd aan de beheerder van het forum. Bedankt!
Weet u zeker dat u dit topic wil verwijderen?