Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Tabel till Listview igen

Postades av 2001-05-03 19:00:00 - Tomas Karlsson, i forum databaser, Tråden har 3 Kommentarer och lästs av 685 personer


I min databas fil har jag 4st tabeller men alla heter olika, likaså alla "fields" men får följande fel meddelande:

Key is not unique in collection.

?????

En fråga, om man inte vet sökvägen utan vill bläddra efter databas filen hur skulle man kunna fixa det?


Min kod:

Option Explicit

Private Const DBFileName = "C:\Karlssons Data och Webdesign\Dagbok.mdb"


Private Sub InitializeListView()
With ListView1
.View = lvwReport
.ColumnHeaders.Add , , "Datum"
.ColumnHeaders.Add , , "Kund"
.ColumnHeaders.Add , , "Arbete"
.ColumnHeaders.Add , , "Start"
.ColumnHeaders.Add , , "Slut"
.ColumnHeaders.Add , , "Timmar"
.ColumnHeaders.Add , , "Hardware"
.ColumnHeaders.Add , , "ProjNummer"
.ColumnHeaders.Add , , "Fakt"
.ColumnHeaders.Add , , "Other"
End With
End Sub

Private Sub Form_Load()
Dim conn As ADODB.Connection
Dim rsTemp As ADODB.Recordset
On Error GoTo Form_Load_Err
Set conn = New ADODB.Connection
Set rsTemp = New ADODB.Recordset

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" & DBFileName

rsTemp.Open "TBL_Dagbok", conn, adOpenForwardOnly, adLockReadOnly, adCmdTableDirect

InitializeListView
LoadListView ListView1, rsTemp, "C", rsTemp("Dagbok_ID"), rsTemp("Dagbok_ID"), rsTemp("Dagb_Datum"), rsTemp("Dagb_Kund"), rsTemp("Dagb_Arbete"), rsTemp("Start"), rsTemp("Slut"), rsTemp("Timmar"), rsTemp("Hardware"), rsTemp("ProjNummer"), rsTemp("Fakt"), rsTemp("Other")


rsTemp.Close
conn.Close

Form_Load_Exit:
Set rsTemp = Nothing
Set conn = Nothing
Exit Sub

Form_Load_Err:
MsgBox Err.Description, vbCritical
Resume Form_Load_Exit
End Sub

Private Sub LoadListView(ListView As MSComctlLib.ListView, Recordset As ADODB.Recordset, KeyPrefix As String, KeyField As ADODB.Field, TextField As ADODB.Field, ParamArray Fields() As Variant)
Dim I As Long
Dim Count As Long
Dim fldField As ADODB.Field
Dim Item As MSComctlLib.ListItem
Dim ListItems As MSComctlLib.ListItems
Count = UBound(Fields)
Set ListItems = ListView.ListItems

Do Until Recordset.EOF
Set Item = ListItems.Add(, KeyPrefix & KeyField, "" & TextField)
For I = 1 To Count
Set fldField = Fields(I)
Item.SubItems(I) = "" & fldField
Next
Recordset.MoveNext
Loop
End Sub

Private Sub Form_Resize()
ListView1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
End Sub


Jätte bussigt om du/nån kan hjälpa mej


/Tomas


Svara

Sv: Tabel till Listview igen

Postades av 2001-05-03 23:42:00 - Andreas Hillqvist

Tror felet kan bero på att du har flera poster med samma Dagbok_ID. Vad är det för typ av fält? Du bör använda dig av en räknare. Vilket du sedan kan använda för att identifiera posten när du redigera eller tarbort poster.

InitializeListView var bara en funktion för att skapa kolumnerna. Vilket du egentligen kan gär direkt i kontrollen i vb och spara.

Jag använde mig av en konstant för sökvägen men för dig är det nog bättre att använda dig av registret:

Istället för

Private Const DBFileName = "C:\Karlssons Data och Webdesign\Dagbok.mdb"

kan du kapsla anrop till GetSetting och SaveSetting i PRoperty Procedure.

Public Property Get DBFileName() As String
DBFileName = GetSetting(App.Title, "Settings", "DBFileName")
End Property
Public Property Let DBFileName(vData As String)
SaveSetting App.Title, "Settings", "DBFileName", vData
End Property

Sedan bör du kontrollera om databasen finns.

Public Function FileExists(FileName As String) As Boolean
Dim lReturn As Long
On Error Resume Next
lReturn = GetAttr(FileName)
FileExists = (Err.Number = 0)
End Function

Private Sub Form_Load()
Dim conn As adodb.Connection
Dim rsTemp As adodb.Recordset
Dim FileName As String
On Error GoTo Form_Load_Err
FileName = DBFileName
Do Until FileExists(FileName)
FileName = InputBox("Var vänlig ange en databas!", "Databas", FileName)
Loop

Set conn = New adodb.Connection
Set rsTemp = New adodb.Recordset

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" & DBFileName

DBFileName = DBFileName

rsTemp.Open "TBL_Dagbok", conn, adOpenForwardOnly, adLockReadOnly, adCmdTableDirect

LoadListView ListView1, rsTemp, "C", rsTemp("Dagbok_ID"), rsTemp("Dagbok_ID"), rsTemp("Dagb_Datum"), rsTemp("Dagb_Kund"), rsTemp("Dagb_Arbete"), rsTemp("Start"), rsTemp("Slut"), rsTemp("Timmar"), rsTemp("Hardware"), rsTemp("ProjNummer"), rsTemp("Fakt"), rsTemp("Other")


rsTemp.Close
conn.Close

Form_Load_Exit:
Set rsTemp = Nothing
Set conn = Nothing
Exit Sub

Form_Load_Err:
MsgBox Err.Description, vbCritical
Resume Form_Load_Exit
End Sub


Svara

Sv: Tabel till Listview igen

Postades av 2001-05-04 06:56:00 - Tomas Karlsson

Ahh, nu fattar jag...

Tack


Svara

Sv: Tabel till Listview igen

Postades av 2001-05-04 16:19:00 - Tomas Karlsson

Hej igen

Jag testade att använda Common Dialog kontrollen för att kunna "bläddra" efter filen men får det inte att funka.

Hur gör man?

/Tomas


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 705
27 958
271 751
789
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies