Hallo

Welkom, Gast. Alsjeblieft inloggen of registreren.

Recent

497 gasten, 0 leden

Welkom, Gast. Alsjeblieft inloggen of registreren.

27 april 2024, 11:09:43

Login met gebruikersnaam, wachtwoord en sessielengte

Nieuws

Welkom op het vernieuwde NL Computer Forum!

Auteur Topic: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer  (gelezen 30844 keer)

0 leden en 1 gast bekijken dit topic.

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #45 Gepost op: 22 augustus 2010, 12:03:50 »
Hoi Jan,

Citaat
Of ontbreekt er soms een bepaalde instelling?
Even vereenvoudigen:
Je hebt een project met een formulier waar het wel in werkt.
Dan voeg je een formulier toe.
Je maakt een copy van het control dat wel werkt, plakt dat op het nieuwe formulier, en vervolgens eventueel nog de bijbehorende programmacode kopieert en aanpast op het nieuwe formulier.

Dan ligt het zeker niet aan het control. Het kan dus aan de database liggen.
In het voorbeeld werd met TextBox controls gewerkt. Probeer het daar eerst eens mee. Al is het maar 1 kolom. Het gaat erom of je dan wel de database kun bewerken.


groeten, Peter



Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #46 Gepost op: 22 augustus 2010, 15:47:32 »
Hoi Peter,
Ik had het over jouw voorbeeld met de textboxen. Daarin werkte wel het in de textboxen plaatsen van de inhoud van de tabel door aanklikken van het betreffende symbool in de ListBox, maar kon ik geen gegevens veranderen of toevoegen. Ik heb de indruk dat dat aan de listbox ligt, want als ik voordat ik dit project opstart gegevens in de tabel probeer te veranderen of records toe te voegen via de Visual Data Manager gaat dat zonder problemen. Probeer ik ditzelfde via commandknop Record toevoegen in het formulier met de data control en de listbox dan lukt dat niet en het lukt evenmin als ik het dan weer, onmiddellijk na gebruiken van de ListBox, probeer via de Visual Data Manager. Het ziet er dus naar uit dat de listbox ergens een lock gezet heeft.

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #47 Gepost op: 22 augustus 2010, 21:21:27 »
Jan,

Citaat
Daarin werkte wel het in de textboxen plaatsen van de inhoud van de   tabel door aanklikken van het betreffende symbool in de ListBox, maar   kon ik geen gegevens veranderen of toevoegen.
Je hebt wel op de ENTER toets gedrukt om de wijziging te bevestigen?
Krijg je een foutmelding? Zoja, welke?

Citaat
Ik heb de indruk dat dat aan de listbox ligt, want ...
Die redenatie snap ik niet. De listbox wordt netjes gevuld, want je ziet de velden van het record dat je aanklikt in de listbox.
Een record toevoegen heeft niets meer met de listbox te maken. Alleen hoe de variabele CN gekoppeld is aan de database (read/write mode, met of zonder wachtwoord en dergelijke) of de juiste SQL commando bepalen of een record toegevoegd kan worden.

Citaat
Het ziet er dus naar uit dat de listbox ergens een lock gezet heeft.
Mogelijk heeft de code in Form_load de database als readonly gezet.
Vervang daar de code eens in:
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.Mode = adModeReadWrite
cn.Open App.Path & "\database\portef1.mdb"

Op deze site staat een .ZIP bestand met daarin een goed uitleg hoe je het DataGrid control kunt gebruiken.


Al met al blijf ik me toch afvragen of het niet verstandiger is de database om te zetten naar een andere structuur.


groeten, Peter
« Laatst bewerkt op: 22 augustus 2010, 22:26:19 door Peter »

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #48 Gepost op: 25 augustus 2010, 18:20:04 »
Hoi Peter,
Het deleten van records werkt goed en het toevoegen van nieuwe records waarschijnlijk ook, maar ik krijg daarbij de fout dat de datattpen niet overeenstemmen.
Om er achter te komen wat de datatypen zijn om zo te weten hoe ik de in houd van de textboxen moet converteren heb ik de volgende code gemaakt. 
Private Sub Command1_Click()
Dim adoConnection As ADODB.Connection
Dim adoRSFields As ADODB.Recordset
Dim sConnection As String
Set adoConnection = New DODB.Connection
sConnection = "Provider=Microsoft.Jet.OLEDB.3.51;Data _ Source=N:\Program Files\Microsoft Visual _ Studio\Prive\Beleggen\DATABASE\portef1.mdb\DividendenTab"
adoConnection.Open sConnection
Set adoRSFields = adoConnection.OpenSchema _(adSchemaProviderTypes)
Do Until adoRSFields.EOF   
Debug.Print "Data Type:" & adoRSFields!TYPE_NAME _    & vbTab & "Columns Size: " & adoRSFields! _ COLUMN_SIZE   
adoRSFields.MoveNext
Loop
Set adoRSFields = Nothing
adoConnection.Close
Set adoConnection = Nothing
End Sub
maar ik krijg dan op sConnection = de fout "Can't open a database created witha previous version of your application". Dit komt mij onwaarschijnlijk voor, want de databasetabel is bij mijn weten aangemaakt met Visual Data Manager van VB 6.0.

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #49 Gepost op: 25 augustus 2010, 21:08:53 »
Hoi Peter,
Dat grid-voorbeeld is inderdaad heel goed en is erg duidelijk.
Bedankt, ik zal het zeker gebruiken.
Hoe kan ik eventueel de structuur van de database aanpassen? Ik zou niet weten welke versie hij is. Omzetten via Microsoft Office Access heb ik al eens eerder geprobeerd, maar dat leverde problemen op. De betreffende bestanden waren door Visual Basic 6.0 niet te lezen.

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #50 Gepost op: 25 augustus 2010, 22:34:20 »
Hoi Jan,

Citaat
Ik zou niet weten welke versie hij is.
Met behulp van onderstaande code kan je dat opvragen.
Plaats een commandbutton (cmdGetVersion) op je formulier en deze code:
Private Sub cmdGetVersion_Click()
Dim sfile As String
Dim txt As String

sfile = App.Path & "\database\portef1.mdb"
txt = GetVersion(sfile)
If txt <> "" Then MsgBox txt
End Sub

Function GetVersion(strDbPath As String) As String
'Geef van meegegeven bestand het versienummer van ACCESS en JET terug
Dim dbs As Database
Dim strAccVersion As String, strJetVersion As String
Dim txt As String

Const conPropertyNotFound As Integer = 3270

On Error GoTo Err_GetVersion

'Open the database and return a reference to it.
Set dbs = OpenDatabase(strDbPath)

'Check the value of the AccessVersion and Version property.
strAccVersion = dbs.Properties("AccessVersion")
strJetVersion = dbs.Properties("Version")

'Strip the two leftmost digits
strAccVersion = Left(strAccVersion, 2)

'Based on the value of the AccessVersion property,
'return a string indicating the version of Microsoft Access
'used to create or open the database.
Select Case strAccVersion
   Case "02":  txt = "2.0"
   Case "06":  txt = "95"
   Case "07":  txt = "97"
   Case "08":  txt = "2000"
   Case "09":  txt = "2002"
   Case Else:  txt = "[" & strAccVersion & "]"
End Select
GetVersion = "Access " & txt & " , JET " & strJetVersion

Exit_GetVersion:
   On Error Resume Next
   dbs.Close
   Set dbs = Nothing
   Exit Function

Err_GetVersion:
   If Err.Number = conPropertyNotFound Then
      MsgBox "Property not Found."
   Else
      MsgBox "Error: " & Err & vbCrLf & Err.Description
   End If
   Resume Exit_GetVersion
End Function


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #51 Gepost op: 26 augustus 2010, 17:01:32 »
Hoi Peter,
Bedankt voor deze code. Ik krijg er de volgende fout mee: "Property not found"  op strAccVersion = dbs.Properties("AccessVersion") Ik heb me inmiddels wat meer verdiept in ADO en heb daarbij in de VB-literatuur ontdekt, dat ADO alle vorige versies zonder problemen aan zou moeten kunnen en dat conversie naar een latere versie niet nodig zou moeten zijn. Wat is jouw ervaring hiermee? 

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #52 Gepost op: 26 augustus 2010, 19:40:58 »
Hoi Jan,

Citaat
Ik krijg er de volgende fout mee: "Property not found"  op
Is het wel een echt Microsoft Access database of heb je de extensie .mdb misbruikt?

Citaat
Wat is jouw ervaring hiermee?
Nul.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #53 Gepost op: 26 augustus 2010, 20:16:05 »
Hoi Peter,
Het is gegarandeerd een Access-database. Ik beschik over geen andere databases.

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #54 Gepost op: 26 augustus 2010, 20:31:59 »
Jan,

Citaat
Het is gegarandeerd een Access-database.
Vreemd. Kun je dat bestand dan eens sturen voor onderzoek, eventueel via een prive-bericht.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #55 Gepost op: 26 augustus 2010, 21:06:20 »
Hoi Peter,
Als ik in strAccVersion = dbs.Properties("AccessVersion") van "AccessVersion" "Version" maak gaat het wel zonder fout. Ik krijg dan dat het een Access 2.0 Jet 2.0 is. Het databasebestand kun je natuurlijk krijgen als dat nog nodig is.
 
 

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #56 Gepost op: 26 augustus 2010, 21:27:56 »
Hoi Jan,

Citaat
"AccessVersion" "Version"
Dat zijn 2 verschillende properties zoals je ook kan zien in de programmacode. In ieder geval is het dan een erg oude  JET 2.0 database engine, uit pakweg 1993 !

Dat bestand mag je sturen.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #57 Gepost op: 26 augustus 2010, 22:13:34 »
Hoi Peter,
Ik heb er ook een Access 3.0 versie bij. Het valt op dat de Access-versie en de Jet-versie gelijk zijn. Is dat toeval of hoort dat zo?
Kan het zijn dat dit komt omdat ik van Accessversion Version
gemaakt heb. Dit is nl. hetzelfde als strJetVersion .
Ik wil het bestand wel opsturen, maar het forum weigert het bestand. Hoe kan ik het versturen? 
 

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #58 Gepost op: 26 augustus 2010, 22:39:55 »
Jan,

Stuur het dan maar via de mail.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: DBGrid1 toont kolommen zonder inhoud, maar accepteert geen invoer
« Reactie #59 Gepost op: 27 augustus 2010, 01:28:08 »
Peter,
Wat is het emailadres?