Probleem met kleine Visual Basic + Access applicatie

Status
Niet open voor verdere reacties.

Tuvai

Gebruiker
Lid geworden
12 dec 2003
Berichten
36
Hello allemaal.

Ik ben pas sinds een paar weken bezig met Visual Basic (voornamelijk in combinatie met Microsoft Access) en kan het tot nu toe best nog wel makkelijk oppakken aangezien sommige dingen hetzelfde werken als Javascript, waar ik al vaker mee werk op websites.

M'n nieuwste projectje bestaat uit een Access database die op een netwerkdrive van het bedrijf staat waar registraties op worden opgeslagen van cursisten. Omdat de mensen die dit moeten gaan gebruiken niet bekend zijn met Access is er dus besloten dat ik twee Visual Basic applicaties moet gaan schrijven; èèn voor de cursistgegevens aan te passen en èèn voor registraties in te voeren.

Ik ben momenteel bezig met het maken van de 'Cursisten Editor', het programma is vrijwel af en ik ben momenteel bezig met het 'mooi maken' en wat gebruiksvriendelijker maken van het programma.

Het programma is een simpele ADO applicatie, die gelinkt staat met een tabel in de Access database. Door middel van navigatie knoppen (<<, <, > en >>) en een menu in de menubalk van de applicatie kan de gebruiker door de 'records' browsen.

Het programma zelf loopt perfect en doet precies waarvoor het bedoelt is. Maar, als ik het ga uitproberen op andere computers in het bedrijf dan stoot ik op verscheidene foutjes.

Het programma loopt perfect op deze computer, waarop het programma gemaakt is. Maar, toen ik op een andere computer ging proberen kreeg ik eerst een foutmelding dat msadobc.ocx niet gevonden kon worden. Dit was simpel opgelost door msadobc.ocx te kopieëren naar de folder waar het programmaatje in staat. Alhoewel, d'r ontstond een nieuw probleem.

Op deze computer, als ik het programma open, dan staan de gegevens van de eerste record in de database weergeven. Op de andere computers wordt helemaal niks weergeven, en als ik op een van de navigatieknoppen of een navigatie optie in de menubalk klik dan krijg ik een run-time 91 error (Object variable or With block variable) en wordt de applicatie gesloten.

Iemand een idee waarom de applicatie dit doet en wat de oplossing er voor is? Het is echt behoorlijk irritant aangezien het dus wel perfect op dèze computer loopt.

Alvast bedankt.
 
Waarschijnlijk gebruik je ergens een dergelijke contructie;

Private Sub tbToolBar_ButtonClick(ByVal Button As Button)

Om het goed te laten werken moet je deze gebruiken;

Private Sub tbToolBar_ButtonClick(ByVal Button As MSComctlLib.Button)


Bron

Mocht dat het niet zijn kun je hier evt zelf verder zoeken.
 
Indien je de codering van de opties in de menubalk bedoeld, die heb ik anders.

Private Sub menafsluiten_Click(Index As Integer)
Unload Me
End Sub

Deze is bijvoorbeeld voor de optie 'Afsluiten' onder menu 'Bestand' in de menubalk.
 
Kan vele oorzaken hebben, zie ook de link in eerder antwoord.
Deze leek me het waarschijnlijkst gezien je mailtje.
 
Dat op Experts Exchange had ik ook al gelezen, net als een hoop andere 'oplossingen' die niet werkten die ik door google vond.

Die mdac drivers heb ik ook al van Microsoft gedownload en geinstalleerd op de andere computer waar ik het programma getest heb, maar het veranderde niks.

Verder heb ik zo'n vermoeden dat het iets met een driver of een component te maken heeft. Als het aan de code lag zou het bij mijn computers immers ook niet lopen, toch?

Indien het van nut kan zijn, dit is de gehele broncode van het programmaatje:

Private Sub Form_Load()
Dim PicWt As Long
Dim PicHt As Long
Dim FrmWt As Long
Dim FrmHt As Long
Dim Xtime As Integer
Dim Ytime As Integer
bgpicbox.Picture = LoadPicture(App.Path & "\bg.gif")
PicWt = bgpicbox.Width
PicHt = bgpicbox.Height
FrmWt = Me.ScaleWidth
FrmHt = Me.ScaleHeight
If FrmWt < PicWt And FrmHt < PicHt Then
Me.PaintPicture Picture1, 0, 0, PicWt, PicHt
Exit Sub
End If
Xtime = Int(FrmWt / PicWt)
Ytime = Int(FrmHt / PicHt)
For x = 0 To Xtime
For Y = 0 To Ytime
Me.PaintPicture bgpicbox, PicWt * x, PicHt * Y, PicWt, PicHt
Next Y
Next x
datumlabel.Caption = "Datum: " & Date
logstat.Caption = "U bent ingelogd als " & Environ("username")
End Sub

Private Sub helpbox(message)
MsgBox message, vbOKOnly, "Cursisten Editor"
End Sub

' Nieuw, Opslaan en Verwijder knoppen

Private Sub recnew_Click()
curtable.Recordset.AddNew
End Sub

Private Sub recsav_Click()
curtable.Recordset.Fields("badgenummer") = cebadge.Text
If cenaam.Text = "" Then
cenaam.Text = "..."
End If
curtable.Recordset.Fields("naam") = cenaam.Text
If ceploeg.Text = "" Then
ceploeg.Text = "Niet ingevuld"
End If
curtable.Recordset.Fields("ploeg") = ceploeg.Text
If cetype.Text = "" Then
cetype.Text = "0"
End If
curtable.Recordset.Fields("type") = cetype.Text
If cegbdatum.Text = "" Then
cegbdatum.Text = Date
End If
curtable.Recordset.Fields("geboortedatum") = cegbdatum.Text
If cedidienst.Text = "" Then
cedidienst.Text = Date
End If
curtable.Recordset.Fields("datum_in_dienst") = cedidienst.Text
If cemv.Text = "" Then
cemv.Text = "M"
End If
curtable.Recordset.Fields("mv") = cemv.Text
curtable.Recordset.Fields("laatst_gewijzigd") = Environ("username") & " op " & Date
curtable.Recordset.Update
helpbox "De cursistgegevens zijn succesvol aangepast"
End Sub

Private Sub recdel_Click()
Confirm = MsgBox("Weet u zeker dat u deze cursist uit de" & vbCrLf & "database wil verwijderen?", vbYesNo, "Deletion Confirmation")
If Confirm = vbYes Then
curtable.Recordset.Delete
helpbox "De cursist was succesvol verwijderd"
curtable.Recordset.MoveFirst
curtable.Recordset.MovePrevious
End If
End Sub

' Head menus

Private Sub menafsluiten_Click(Index As Integer)
Unload Me
End Sub

Private Sub menuleesmij_Click(Index As Integer)
On Error Resume Next
Set modObjIE = CreateObject("InternetExplorer.Application")
modObjIE.Visible = True
modObjIE.Navigate2 "P:\Trainingdatabase\readme.htm"
modlngWndIE = modObjIE.hWnd
End Sub

Private Sub menuover_Click(Index As Integer)
helpbox "Cursisten Editor v1.0" & vbCrLf & "Eigendom van Sicar bv" & vbCrLf & "© Leroy Gerrits alias Tuvai"
End Sub

Private Sub rseerste_Click(Index As Integer)
curtable.Recordset.MoveFirst
End Sub

Private Sub rsvorige_Click(Index As Integer)
If Not curtable.Recordset.BOF Then
curtable.Recordset.MovePrevious
Else
curtable.Recordset.MoveNext
End If
End Sub

Private Sub rsvolgende_Click(Index As Integer)
If Not curtable.Recordset.EOF Then
curtable.Recordset.MoveNext
Else
curtable.Recordset.MovePrevious
End If
End Sub

Private Sub rslaatste_Click(Index As Integer)
curtable.Recordset.MoveLast
End Sub

' Help (?) knoppen

Private Sub helpbadge_Click()
helpbox "Het badgenummer van de cursist. Maximaal 8 nummers lang."
End Sub

Private Sub helpnaam_Click()
helpbox "De naam van de cursist. Maximaal 50 karakters lang."
End Sub

Private Sub helpploeg_Click()
helpbox "Het ploegnummer van de cursist. Maximaal 4 nummers lang."
End Sub

Private Sub helptype_Click()
helpbox "Het type cursist. 'sicar' is een vaste werkkracht," & vbCrLf & "'temp' is een uitzendkracht."
End Sub

Private Sub helpgbdatum_Click()
helpbox "De geboortedatum van de cursist." & vbCrLf & "In Maand/Dag/Jaar formaat (bijv. 10/23/03)."
End Sub

Private Sub helpdidienst_Click()
helpbox "De datum wanneer de cursist in dienst is gegaan." & vbCrLf & "In Maand/Dag/Jaar formaat (bijv. 10/23/03)."
End Sub

Private Sub helpmv_Click()
helpbox "De sexe van de cursist." & vbCrLf & "'M' voor man, 'V' voor vrouw."
End Sub

' Actieve navigatie knoppen

Private Sub bnfirst_Click()
curtable.Recordset.MoveFirst
End Sub

Private Sub bnprevious_Click()
If Not curtable.Recordset.BOF Then
curtable.Recordset.MovePrevious
Else
curtable.Recordset.MoveNext
End If
End Sub

Private Sub bnnext_Click()
If Not curtable.Recordset.EOF Then
curtable.Recordset.MoveNext
Else
curtable.Recordset.MovePrevious
End If
End Sub

Private Sub bnlast_Click()
curtable.Recordset.MoveLast
End Sub
 
Laatst bewerkt:
Installeer via een setup.

Maak een setup van je programma met de Package & Deployment Wizard en installeer via die setup je applicatie op de pc's.
Zo worden ineens alle bibliotheken geinstaleerd/geregistreerd of ge-update.

Ronny
 
Perfect, dat heeft het opgelost en de applicatie loopt nu zelfs met verschillende Access versies. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan