comme le dis le titre je souhaite avoir de l'aide pour crée ce logiciel.
pour vous expliquer au plus simple
on est une équipe en train de monter un stand de tir
chaque tireur sportif détient une carte (License de tir) qui a un code barre unique a chaque tireur
nous avons aussi tout les données liée aux tireurs (code barre des tireur, nom, prénom etc.)
on voudrais se servir de sa pour enregistrer les présence.
donc j'aurais aimer avoir des base ou explication sur comment faire ceci.
il faudrait donc que ce logiciel soit relier a une base de donnée et a chaque scan de code barre, les information soit automatiquement inscrites dans un fichier qui sera daté du jour automatiquement et qui sera avent fermeture du stand en fin de journée enregistrer dans un dossier spécifique.
je n'ais aucune notion en matière de programmation au niveau logiciel mais avec des explication claire je peut comprendre et apprendre très vite.
si vous souhaitez plus d'explication ou de precision n'hésitez pas
Ce que tu demandes n'a rien de complexe, il faut cependant que tu prennes le temps d'apprendre les bases du langage, éventuellement WinForm pour aller au plus rapide, et pour tout le reste c'est limite du built-in. Le lecteur de code barre va tout simplement entrer le code lu dans un champs texte et appuyer sur Enter (c'est en tout cas comme ça que tout ceux que j'ai eu fonctionnaient, et je doute que ce soit différent honnêtement !).
Ensuite via un événement tu vas juste effectuer une recherche en base de données (ADO / Entity ?) et écrire dans un fichier texte ce que tu veux (une petite recherche sur google te dira comment faire). Il n'y a vraiment rien du tout de compliqué là dedans
Je ne suis plus modérateur, ne me contactez plus pour des demandes, je n'y répondrai pas.
Voici un petit lecteur codes barres qui pourrait faire le travail demandé :
-- Modéré par Benzouye : pas de lien publicitaire, merci --
Principe de fonctionnement .
On scanne le code barres de la cartes de membre.
Le lecteur inscrit dans sa mémoire interne le code barre (en clair donc les chiffres et les lettres) + la date + l'heure précise
A la fin de la journée, il suffit de brancher le lecteur codes barres à un port USB du PC et il se transforme en disque dur externe contenant un fichier excel qui reprend tous les scans de la journée.
Il suffit donc de le copier sur le PC et de le traiter avec excel.
système intéressant mais le système que tu me propose enregistre seulement le numéro en clair dans un fichier Excel et sa je peut déjà le faire avec Excel (saisie instantané dans les cellule en scannant le code barre).
je vais crée le logiciel de AaZ et utiliser un scanner filaire tout simple afin d'avoir en plus du code les nom prénom et autre info importante qui seront récupérer dans une base de données au moment du scan.
comme décris dans mon poste initial.
merci d'avoir pris le temps pour ton aide et de m'avoir proposer ce matos
en fichier .xls si possible sinon en csv si cela reproduit bien le tableau du listview
par contre j'ai de nouvelle questions
comment en vb.net crée une boite de dialogue demandant la confirmation de suppression des ligne dans le gridview? "j'ai seulement trouvé des code pour asp".
comment faire une sauvegarde "archive" de ma data base access dans le dossier de mon choix? en gardant le fichier d'origine soit "mabdd.accdb" dans l'application.
pour le listview il faudrait que chaque jour je puisse enregistrer la listview dans un dossier de mon choix avec le nom de mon choix
le code dans le lien enregistre dans un fichier spécifique j'avais trouver se code dans mes recherche mais j'avais pas vraiment regarder car c'était du csv.
pour le gridview les ajout/modif/suppression se font via des boutons possible de faire sa sur le bouton?
pour la sauvegarde de la bdd je voulais simplement savoir si c'est possible de copier le fichier en cliquant sur un bouton prévu pour la sauvegarder autre part tout en gardant celui de l'application
Dans l'exemple, le nom du fichier est en dur mais rien ne vous interdit de remplacer cette valeur par l'appel d'une méthode qui calcule le chemin et le nom du fichier.
> via des boutons possible de faire sa sur le bouton?
Oui, c'est la même chose, c'est juste des events différents mais la mécanique est la même.
>je voulais simplement savoir si c'est possible de copier le fichier
ACCESS est d'un usage assez particulier par rapport aux autres SGBDR car il n'utilise pas de processus indépendant mais une base de données est potentiellement utilisée par plusieurs personne en même temps. Donc faire une copie de fichier d'une base de données, ce la n'a pas de sens car les données peuvent être complètement erronées de manière transitoire.
C'est pour cela que les SGBDR implémentent des fonctionnalités d'archivage dédiés.
Donc, demandez à un administrateur ACCESS la procédure à suivre pour un archivage "safe".
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
non elle ne sera utilisé que par une personne mais on a besoin de garder des traces car si les autorité pour un fait divers on besoin d'avoir cette BDD on doit être capable de la fournir a des période plus ou moins précise c'est une sécurité, il n'y aura pas de connexion internet non plus.
encore merci pour votre aide qui vas me permettre d'avancer
Si c'est pour faire des tâches répétitives, je vous encourage plutôt à utiliser des mécanismes types tâches planifiées, plutôt que des boutons dans une application.
En plus, je pense que vous trouverez sur le net des scripts tout fait d'archivage utilisant des tâches planifiées.
Ce genre de script est bien plus fiable car ils utilisent toutes les fonctionnalités avancés, comme le monitoring sur les consoles de supervision, la déconnections automatiques des utilisateurs encore connectés, le shadowcopy pour les copies à chaud, etc...
Cette fonctionnalité est "opérationnelle", l'archivage, les spécialistes de ce type de fonctionnalité, c'est les administrateurs.
Et vous connaissent encore ma conclusion :
demandez à un administrateur ACCESS la procédure à suivre pour un archivage "safe". (BIS)
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
'....code au debut du click....
Dim delete As DialogResult
delete = MessageBox.Show("Voulez vous vraiment supprimer la ligne sélectionner?", "SUPPRIMER", MessageBoxButtons.YesNo)
If delete = DialogResult.No Then
con.close()
Else
'...suite du code supprimant la ligne ....
je viens de trouver ce code pour import en .xls il fonctionne pour datagridview possible de le faire fonctionner pour un listview?
voici le code. qu'en pensez-vous? le form_load et le load_data ne me sont pas utile car dans mon appli les donnée sont ajoutées au fur et a mesure avent la sauvegarde en fin de journée
Imports System.IO
Public Class FrmDemo
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With DataGridView1
.Columns.Clear()
.Columns.Add("No", "No")
.Columns.Add("NIK", "NIK")
.Columns.Add("Nama", "Nama")
.Columns.Add("Alamat", "Alamat")
.Columns.Add("Telp", "Telp")
End With
End Sub
Private Sub BtnLoadData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLoadData.Click
BtnLoadData.Text = "Please Wait..."
BtnLoadData.Enabled = False
Application.DoEvents()
'LOAD 10000 ROWS INTO DATAGRIDVIEW
For i As Integer = 1 To 10000
With DataGridView1.Rows
.Add(i, "3112" & i, "Student " & i, "Indonesia " & i, "021-" & i)
End With
Application.DoEvents()
Next
BtnLoadData.Text = "Load Data"
BtnLoadData.Enabled = True
End Sub
Dim FlNm As String
Private Sub ExportToExcel(ByVal DGV As DataGridView)
Dim fs As New StreamWriter(FlNm, False)
With fs
.WriteLine("<?xml version=""1.0""?>")
.WriteLine("<?mso-application progid=""Excel.Sheet""?>")
.WriteLine("<Workbook xmlns=""urn:schemas-microsoft-com:office:spreadsheet"">")
.WriteLine(" <Styles>")
.WriteLine(" <Style ss:ID=""hdr"">")
.WriteLine(" <Alignment ss:Horizontal=""Center""/>")
.WriteLine(" <Borders>")
.WriteLine(" <Border ss:Position=""Left"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
.WriteLine(" <Border ss:Position=""Right"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
.WriteLine(" <Border ss:Position=""Top"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
.WriteLine(" </Borders>")
.WriteLine(" <Font ss:FontName=""Calibri"" ss:Size=""11"" ss:Bold=""1""/>") 'SET FONT
.WriteLine(" </Style>")
.WriteLine(" <Style ss:ID=""ksg"">")
.WriteLine(" <Alignment ss:Vertical=""Bottom""/>")
.WriteLine(" <Borders/>")
.WriteLine(" <Font ss:FontName=""Calibri""/>") 'SET FONT
.WriteLine(" </Style>")
.WriteLine(" <Style ss:ID=""isi"">")
.WriteLine(" <Borders>")
.WriteLine(" <Border ss:Position=""Bottom"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
.WriteLine(" <Border ss:Position=""Left"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
.WriteLine(" <Border ss:Position=""Right"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
.WriteLine(" <Border ss:Position=""Top"" ss:LineStyle=""Continuous"" ss:Weight=""1""/>")
.WriteLine(" </Borders>")
.WriteLine(" <Font ss:FontName=""Calibri"" ss:Size=""10""/>") 'SET FONT
.WriteLine(" </Style>")
.WriteLine(" </Styles>")
If DGV.Name = "Student" Then
.WriteLine(" <Worksheet ss:Name=""Student"">") 'SET NAMA SHEET
.WriteLine(" <Table>")
.WriteLine(" <Column ss:Width=""27.75""/>") 'No
.WriteLine(" <Column ss:Width=""93""/>") 'NIK
.WriteLine(" <Column ss:Width=""84""/>") 'Nama
.WriteLine(" <Column ss:Width=""100""/>") 'Alamat
.WriteLine(" <Column ss:Width=""84""/>") 'Telp
End If
'AUTO SET HEADER
.WriteLine(" <Row ss:StyleID=""ksg"">")
For i As Integer = 0 To DGV.Columns.Count - 1 'SET HEADER
Application.DoEvents()
.WriteLine(" <Cell ss:StyleID=""hdr"">")
.WriteLine(" <Data ss:Type=""String"">{0}</Data>", DGV.Columns.Item(i).HeaderText)
.WriteLine(" </Cell>")
Next
.WriteLine(" </Row>")
For intRow As Integer = 0 To DGV.RowCount - 1
Application.DoEvents()
.WriteLine(" <Row ss:StyleID=""ksg"" ss:utoFitHeight =""0"">")
For intCol As Integer = 0 To DGV.Columns.Count - 1
Application.DoEvents()
.WriteLine(" <Cell ss:StyleID=""isi"">")
.WriteLine(" <Data ss:Type=""String"">{0}</Data>", DGV.Item(intCol, intRow).Value.ToString)
.WriteLine(" </Cell>")
Next
.WriteLine(" </Row>")
Next
.WriteLine(" </Table>")
.WriteLine(" </Worksheet>")
.WriteLine("</Workbook>")
.Close()
End With
End Sub
Private Sub BtnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExport.Click
If DataGridView1.RowCount = 0 Then Return
BtnExport.Text = "Please Wait..."
BtnExport.Enabled = False
Application.DoEvents()
Dim DGV As New DataGridView
With DGV
.AllowUserToAddRows = False
.Name = "Student"
.Visible = False
.Columns.Clear()
.Columns.Add("No", "No")
.Columns.Add("NIK", "NIK")
.Columns.Add("Nama", "Nama")
.Columns.Add("Alamat", "Alamat")
.Columns.Add("Telp", "Telp")
End With
With DataGridView1
If .Rows.Count > 0 Then
For i As Integer = 0 To .Rows.Count - 1
Application.DoEvents()
DGV.Rows.Add(IIf(i = 0, 1, i + 1), .Rows(i).Cells("NIK").Value, _
.Rows(i).Cells("Nama").Value, .Rows(i).Cells("Alamat").Value, _
.Rows(i).Cells("Telp").Value)
Next
End If
End With
FlNm = "E:\Student " & Now.Day & "-" & Now.Month & "-" & Now.Year & ".xls"
'FlNm = Application.StartupPath & "\Student " _
' & Now.Day & "-" & Now.Month & "-" & Now.Year & ".xls"
If File.Exists(FlNm) Then File.Delete(FlNm)
ExportToExcel(DGV)
DGV.Dispose()
DGV = Nothing
Process.Start("E:\Student " & Now.Day & "-" & Now.Month & "-" & Now.Year & ".xls")
BtnExport.Text = "Export"
BtnExport.Enabled = True
End Sub
End Class
Ouais, bof, c'est un fichier plus proche d'une version "Web" d'un .xlsx qu'un fichier .xls.
Il profite de la "gentillesse" d'Excel.
En plus, cela n'apporte aucune fonctionnalité à un simple .csv et c'est plus complexe à faire.
Il y a pas mal de maladresse dans ce code, comme le clonage de la DataGridView et l'utilisation de DoEvents pour planquer des problèmes de réactivité de l'IHM.
Par administrateur ACCESS, je parle de spécialiste de l'utilisation d'ACCESS que vous devriez trouver sur les forums dédiés à ACCESS.
Mais ne mettez pas les tâches d'archivage au bon vouloir d'un utilisateur, souvent mal formé et surchargé par d'autres tâches.
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
je crois que vous n'avez pas compris le "pourquoi je fabrique cette application"
je ne la fait pas pour un société
je la fait pour notre Asso de tir qui permet simplement de prendre les présence par scan des Codes barres des licences de tir des adhérents.
l'ordi ou le logiciel sera installer ne servira a rien d'autres et ne sera pas connecté a internet
il n'y aura pas non plus plusieurs utilisateur sur ce logiciel
je viens de faire se code qui me permet simplement de copier le fichier .accdb qui est utilisé comme base de donnée a force de test et tentative j'ai trouver la bonne formule et cela fonctionne sans problème "il manque juste un petit détaille l'extension automatique que je n'arrive pas a trouver"
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim saved As DialogResult
saved = SaveFileDialog1.ShowDialog()
If saved = DialogResult.Cancel Then
MessageBox.Show("Operation Abandonné.", "Abandon!")
Else
TextBox6.Text = SaveFileDialog1.FileName()
FileCopy(Source:="database.accdb", Destination:=TextBox6.Text)
MessageBox.Show("Base de Données Archivé avec success!", "Success!")
End If
End Sub
Textbox6 est un textbox non visible
edit j'ai trouver et compris
code a jour
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim saved As DialogResult
SaveFileDialog1.DefaultExt = "accdb"
SaveFileDialog1.Filter = "Access Base de données (*.accdb)|"
saved = SaveFileDialog1.ShowDialog()
If saved = DialogResult.Cancel Then
MessageBox.Show("Operation Abandonné.", "Abandon!")
Else
TextBox6.Text = SaveFileDialog1.FileName()
FileCopy(Source:="database.accdb", Destination:=TextBox6.Text)
MessageBox.Show("Base de Données Archivé avec success!", "Success!")
End If
End Sub
je revient vers vous car malgré mes essais je sèche
j'ai réussi a exporter mes données listview en fichier xls
voici le code:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
SaveFileDialog1.Title = "Save Excel File"
SaveFileDialog1.Filter = "Excel files (*.xls)|*.xls|Excel Files (*.xlsx)|*.xslx"
SaveFileDialog1.ShowDialog()
Dim xls As New Excel.Application
Dim book As Excel.Workbook
Dim sheet As Excel.Worksheet
xls.Workbooks.Add()
book = xls.ActiveWorkbook
sheet = book.ActiveSheet
Dim row As Integer = 1
Dim col As Integer = 1
For Each item As ListViewItem In ListView1.Items
For i As Integer = 0 To item.SubItems.Count - 1
sheet.Cells(row, col) = item.SubItems(i).Text
col = col + 1
Next
row += 1
col = 1
Next
book.SaveAs(SaveFileDialog1.FileName)
xls.Workbooks.Close()
xls.Quit()
releaseObject(sheet)
releaseObject(book)
releaseObject(xls)
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
le probleme je n'arrive pas a integrer le nom des colonnes (nom, prenom etc)
si quelque a la solution je suis preneur et je le remercie beaucoup
Je pense toujours que l'archivage doit être fait dans une tâche planifiée et pas dans l'application, association ou pas.
Si un simple "FileCopy" et assez fiable pour vous, un simple script batch utilisant "copy" devrait aussi faire l'affaire et donc être utilisé dans une tâche planifiée.
Votre code fait de l'automation d'Excel, avec toutes les emmerdes que cela implique. Pourquoi ne pas simplement générer un fichier csv, tout bête.
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
Je pense toujours que l'archivage doit être fait dans une tâche planifiée et pas dans l'application, association ou pas.
Si un simple "FileCopy" et assez fiable pour vous, un simple script batch utilisant "copy" devrait aussi faire l'affaire et donc être utilisé dans une tâche planifiée. ... Vous avez un exemple car je me suis lancer dans l'aventure le 03 mars 2016 avec 0 connaissance dans le domaine de la prog en vb, c# et autre langage du même style.
Votre code fait de l'automation d'Excel, avec toutes les emmerdes que cela implique. c'est a dire?? car il marche parfaitement.
L'automation Excel : ça implique qu'il faut Excel d'installer sur la machine, Excel n'est pas un programme serveur, donc, en cas de boite de dialogue intempestive dans Excel, votre application est bloquée, les modifications à la main (pour débugging ou pour consolidation d'autres sources) CSV c'est nettement plus simple, CSV est utilisable dans quasiment tous les tableurs et pas seulement Excel, et surtout c'est plus simple que votre code (même si, ici, il n'est pas très complexe).
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
je vais être franc j'ai assez galérer je n'est pas vraiment envi de modifier mon code pour faire du csv ou faire des tache plannifier j'ai rien compris au lien donné alors que le xls et le filecopy fonctionne parfaitement
en plus de sa j'ai finalement trouver le moyen de faire apparaît le nom des colonne (apres dix tentative en modifiant un bout de code)
Dim xls As New Excel.Application
Dim book As Excel.Workbook
Dim sheet As Excel.Worksheet
xls.Workbooks.Add()
book = xls.ActiveWorkbook
sheet = book.ActiveSheet
Dim row As Integer = 2
Dim col As Integer = 1
For Each item As ListViewItem In ListView1.Items
'Titre des colonnes
For Nc = 0 To ListView1.Columns.Count - 1
sheet.Cells(1, Nc + 1) = ListView1.Columns(Nc).Text
Next
'données contenue dans le listview
For i As Integer = 0 To item.SubItems.Count - 1
sheet.Cells(row, col) = item.SubItems(i).Text
col = col + 1
Next
row += 1
col = 1
Next
plus tard si besoin ont feras en conséquence pour le moment je pense que c'est largement suffisant
merci quand même pour vos liens, explication et proposition ainsi que le temps que vous avez pris pour me répondre
mon sujet est resolu le logiciel repond a tout ce que je voulais faire et meme mieux que prevu
J'ai le même projet mais pour des cours de danse. Le but est d'enregistrer les présences en début de cours et de pouvoir utiliser les données sur excel en fonction des élèves et des différentes informations sur chacun. Je cherche quelqu'un pour m'aider car je n'y connais absolument rien en programmation et réalisation d'application.
@FlorenceMbadi Bonjour, ce sujet date de 2016 et est noté résolu. Merci de ne pas déterrer d'ancien sujet résolu pour une nouvelle question. Créer votre propre sujet en nous expliquant votre contexte ainsi que le code que vous avez écrit insérer sur le forum à l'aide du bouton code </> de la barre d'outil.
Je ferme ce déterrage.
Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Je ne suis plus modérateur, ne me contactez plus pour des demandes, je n'y répondrai pas.