![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Learning French by learning Access or Learning
Access while learning French …
Whatever
works!
Download the sample database
LearningFrench.zip (206 KB created in Access 2003)
This is a
small sample database for learning French my way (and with small adjustments you
can use it for other languages too). I did it quickly and dirty a couple of
months ago and kind of liked to work with it. On the other hand I tried to get
the database decently normalized and the core of it is a mapping table for n:n
relationships, something people often struggle with. So it’s also a little
sample db for Access beginners. But don’t look at form layout and such stuff –
I’m poor in that kind of task.
Therefore I
dare to think that it’s a good idea to make it available to interested guys out
there and I tried to make it more understandable (I bet there is still a lot of
German stuff in it when you look closely). Gosh – it really is tough to get
something reasonably in shape.
How to start
Download the
zip file and extract the content in a folder of your choice. It contains 2
Access files LearningFrench.mdb the so called front end (FE) and
LearningFrenchData.mdb the back end (BE) which holds the tables.
Open the FE
LearningFrench.mdb and the following form will open up:

This is
kind of overkill for this application (but when you need a tool to re-link with
dozens of back end databases this comes in handy). Besides the table link
feature is courtesy of friend Emilia – one of the few real Access professionals
in this small world.
Click on
the “Search new DB” button, navigate to the LearningFrenchData.mdb file you
have extracted, click OK, the “Change selected links” button and finally
“Close” and you are done.
To avoid it
popping up each time you open your DB, go to the Start option and replace this
form with the frmText. This is the form you will use all the time. Open it
right now and …
… Start to learn French
But first
some general remarks about navigating in Access (I’m a lazy guy and when there
is something useful already built in I do use it. Good coding practice is to
put the handling in customized buttons – you won’t see many of them in this
little application). Watch out for this:
These are
the built in navigation buttons you’ll find at the bottom of every form. These
allow you to navigate through the records. From left to right they do the
following: go to the first record / one record back / next record / last record
/ new record.
In the
middle you see the index of the selected record and on the right side the
number of records available. You will have to use these buttons frequently in
order to navigate through your French lessons
If you
haven’t done yet, open the form frmText now. Besides a small sample sentence
the database is empty. That is because filling the DB is learning the language
;-). frmText looks like this:

This form
has according to the structure of data 2 sub-forms which are linked by the IDs
(the primary and foreign keys which link the tables together but in good design
you never show to the user).
The upper
level is your French text (something you are interested in and copy from the
web or any other source).
In order to
cope with the translation I like to break the text up into small chunks I can
work on. Therefore I copy the first sentence into the field sentence in the
first sub-form and write in the field Translation the English, German or
whatever translation of my sentence. Usually there are tons of words I have no
clue of. I then look in the 2nd sub-form whether the word is already
in my dictionary (… and as usual have forgotten about). If it’s new to my
dictionary I click the *new Entry* item in the drop down list:

This brings
us to a little form for adding new words:

Write down the
French word and the translation you probably will look up in an online
dictionary.
Select the
word class below and in case of a verb the related verb form (later more about
that) and click OK. Now the new word is in your database and shows up in your dictionary
sub-form. In the footer there is a note field which is part of the dictionary
record. There you can put in notes, expressions related to the word and so on.
In case
it’s a verb (oh these verbs are killing me and I always struggle with their
disguised forms!) I select the person
and tense from the dropdown:

I only put
in one example (the present for regular verbs ending with er – the most common
verb form in French). Filling the
various forms of conjugation is – at least on my part – the crucial part of
learning French and you should do it yourself when you are serious about
learning French.
This brings
us to ….
… How verbs are mapped in the database
Let’s have
a look at the relationships of our little application:

You see the
table holding your text which you can break into sentences as many as you like
(standard 1 : n relationship). The first challenge is the fact that a sentence
usually has many words in it and on the other hand a word can be in many
sentences (the “famous” n : n relationship). That’s where the mapping table
comes in. With this little technique you can have a proper n : n relationship
knowing all the time which words are selected for a sentence and which
sentences a given word is in.
Now to the
verb part (probably over engineered but a nice example how you can model the
structure of something into your db). Let me try to explain:
When a word
is a verb you need to assign or create a verb form (creating a relationship to
tblVerbs). To define the verb forms is a tricky task. Here is what I do. First
there is the distinction between regular and irregular verbs:
Regular
verbs: I name them like Ending_er_2 (that doesn’t work for the ir-verbs – I
named them after the example verb in my grammar – you have to be creative ;-).
When you double click on the Person_Tense field (in the record for “desirer” in
our little example) you get to the conjugation form:

The field
CountEnding is an important one. It tells us how many letters we have to
eliminate from the right in order to get the root of the verb. To this root
then the conjugation endings are added.
Now when
you need the forms for Imparfait select the conjugation and then the person
forms and put in the endings:

For
irregular verbs I leave the CountEnding blank put in the basic form of the verb
for a name and type in the full verb forms. As an example the conjugation of
étre:

For Access
insiders: The field CountEnding is used for processing a verb form. In your SQL
you would then have something like this:
IIf(IsNull(tblVerbs!CountEnding),tblConjugation!Conjugation,Mid(tblDictionary!Word,1,Len(tblDictionary!Word)-tblVerbs!CountEnding)
& tblConjugation!Conjugation) AS Form
Last but
not least, with the “New” button you can create a new Verb form & I hope
this was not too confusing for you. It still is for me J
Your little dictionary
When you
double click a word you get to a little dictionary form:

Here you can measure your progress by counting the collected words and are able to see for which sentences a word was used.
That’s it. There are many better language learning tools out there. But when you work with Access anyway and like to do it your way I hope it will be some fun. Feel free to contact me with any questions and definitely give me feedback about bugs you detect.
I still have the idea to add some testing feature (like creating random cloze texts to practice the vocabulary. Honestly: I don’t have a clue how to do this. When someone is out there with skills like this – Just let me know.
Have fun
Richard
copyright 2009 - 2011 Richard Winter
Complaints, questions, comments?
Contact richard@richardhwinter.de