Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Έλεγχος των πεδίων ενός πίνακα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/260-elegxos-ton-pedion-enos-pinaka.html)

stavros 01-12-09 21:15

Έλεγχος των πεδίων ενός πίνακα
 
Καλησπέρα και από εμένα και συγχρητήρια για το site σας.
Μήπως μπορεί να με βοηθήσει κάποιος με το παρακάτω πρόβλημα που έχω...

Εισάγω ένα αρχείο excel στην access χρησιμοποιόντας την εντολή TransferSpreadsheet με ονόματα πεδίων τις επικεφαλίδες που έχω στο excel και ο πίνακας που δημιουργείται έχει την εξής γραμογράφηση:

id
account
description
...
...
κτλ.

πως μπορώ να ελέγξω την γραμογράφηση του πίνακα που δημιουργείτε και αν δεν υπάρχει ενα πεδίο πχ το account να μην δημιουργείται ο πίνακας και να εμφανίζει ενα μήνυμα λάθους οτι δεν υπάρχει το συγκεκριμένο πεδίο?

Ευχαριστώ εκ των προταίρων...

stavros 02-12-09 09:38

Τελικά χθές βρήκα πως ελέγχουμε αν υπάρχει ένα σε έναν πίνακα. Ανεβάζω τον κώδικα μήπως τον χρειαστεί και κάποιος άλλος...


Δημιουργούμε μια function με το όνομα FieldExists η οποία έχει δύο ορίσματα το όνομα πίνακα και το όνομα του πεδίου...

Function FieldExists(strTable As String, strField As String) As Boolean
Dim rst As Recordset
Dim fld As DAO.Field


FieldExists = False

On Error GoTo Err_Handle

Set rst = CurrentDb.TableDefs(strTable).OpenRecordset

For Each fld In rst.Fields
If fld.Name = strField Then
FieldExists = True
Exit Function
End If
Next fld




rst.Close
Set rst = Nothing

Err_Exit:
Exit Function

Err_Handle:
Select Case Err.Number
Case 3265 'TableDef not found
MsgBox "This table does not exist in the database. Please check spelling"
Case Else
MsgBox "Error " & Err.Number & ": " & Err.Description
End Select
Resume Err_Exit

End Function

και στην συνέχεια την καλούμε όποτε θέλουμε πχ


If FieldExists("onoma_pinaka", "onoma_pediou") Then
MsgBox "Field found"
Else
MsgBox "Field not found"
End If

Ελπίζω να βοηθήσει και κάποιον άλλον......

Tasos 02-12-09 10:57

Καλημέρα Σταύρο και καλωσόρισες στο φόρουμ!

Σ ευχαριστούμε πολύ για τον κώδικα που ανέβασες!

Εναλλακτικά, μπορείς χρησιμοποιήσεις και τον παρακάτω κώδικα:

Option Compare Database
Option Explicit

Sub Test()
If FieldExists("pinakas1", "Pedio1") Then
MsgBox "Field exists!"
Else
MsgBox "Field does not exist!"
End If
End Sub

Function FieldExists(tbl$, fld$) As Boolean
Dim rst As Object
On Error GoTo ExitHere
Set rst = CurrentDb.OpenRecordset(tbl, 4)
FieldExists = Len(rst.Fields(fld).Name) > 0
ExitHere:
If Not rst Is Nothing Then
rst.Close
Set rst = Nothing
End If
End Function


Με εκτίμηση

Τάσος

stavros 02-12-09 11:51

Τάσο τον είδα τον κώδικά σου και σε ευχαριστώ για την ανταπόκριση..
Θα χρησιμοποιήσω τον δικό σου.
Είναι καλύτερος.


Η ώρα είναι 22:51.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2